PageRenderTime 34ms CodeModel.GetById 9ms RepoModel.GetById 1ms app.codeStats 0ms

/Atlassian.Jira.Test/JqlQueryProviderTest.cs

https://bitbucket.org/headspring/atlassian.net-sdk
C# | 90 lines | 74 code | 16 blank | 0 comment | 0 complexity | 553941b5417e6a046006536121c1200c MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Xunit;
  6. using Atlassian.Jira.Remote;
  7. using Moq;
  8. using System.Linq.Expressions;
  9. using Atlassian.Jira.Linq;
  10. namespace Atlassian.Jira.Test
  11. {
  12. public class JqlQueryProviderTest
  13. {
  14. private Mock<IJiraRemoteService> _soapClient;
  15. private Mock<IJqlExpressionVisitor> _visitor;
  16. private Jira CreateJiraInstance()
  17. {
  18. _visitor = new Mock<IJqlExpressionVisitor>();
  19. _soapClient = new Mock<IJiraRemoteService>();
  20. _visitor.Setup(t => t.Process(It.IsAny<Expression>())).Returns(new JqlData() { Expression = "dummy expression" });
  21. return new Jira(_visitor.Object, _soapClient.Object, null, "username", "password");
  22. }
  23. [Fact]
  24. public void Count_WithSoap()
  25. {
  26. var jira = CreateJiraInstance();
  27. _soapClient.Setup(r => r.GetIssuesFromJqlSearch(
  28. It.IsAny<string>(),
  29. It.IsAny<string>(),
  30. It.IsAny<int>())).Returns(new RemoteIssue[1] { new RemoteIssue() });
  31. Assert.Equal(1, jira.Issues.Count());
  32. }
  33. [Fact]
  34. public void Count_WithRest()
  35. {
  36. var jira = CreateJiraInstance();
  37. _visitor.Setup(t => t.Process(It.IsAny<Expression>())).Returns(new JqlData() { Expression = "dummy expression", ProcessCount = true });
  38. jira.UseRestApi = true;
  39. _soapClient.Setup(r => r.GetIssueCountFromJqlSearch(It.IsAny<string>())).Returns(20);
  40. Assert.Equal(20, jira.Issues.Count());
  41. }
  42. [Fact]
  43. public void Skip_WithRest()
  44. {
  45. var jira = CreateJiraInstance();
  46. _visitor.Setup(t => t.Process(It.IsAny<Expression>())).Returns(new JqlData() { Expression = "dummy expression", StartAt = 1, MaxResults = 1 });
  47. _soapClient.Setup(s => s.GetJsonFromJqlSearch(It.IsAny<string>(), 1, 1, null)).Returns("{issues:[]}");
  48. jira.UseRestApi = true;
  49. jira.Issues.Skip(1).FirstOrDefault();
  50. _soapClient.Verify(s => s.GetJsonFromJqlSearch(It.IsAny<string>(), 1, 1, null));
  51. }
  52. [Fact]
  53. public void Skip_WithSoap_ShouldThrowException()
  54. {
  55. var jira = CreateJiraInstance();
  56. _visitor.Setup(t => t.Process(It.IsAny<Expression>())).Returns(new JqlData() { Expression = "dummy expression", StartAt = 1 });
  57. Assert.Throws(typeof(InvalidOperationException), () => jira.Issues.Skip(1).FirstOrDefault());
  58. }
  59. [Fact]
  60. public void First()
  61. {
  62. var jira = CreateJiraInstance();
  63. _soapClient.Setup(r => r.GetIssuesFromJqlSearch(
  64. It.IsAny<string>(),
  65. It.IsAny<string>(),
  66. It.IsAny<int>())).Returns(new RemoteIssue[]
  67. {
  68. new RemoteIssue() { summary = "foo"},
  69. new RemoteIssue()
  70. });
  71. Assert.Equal("foo", jira.Issues.First().Summary);
  72. }
  73. }
  74. }