PageRenderTime 307ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Atlassian.Jira.Test/ServiceLocatorTest.cs

https://bitbucket.org/farmas/atlassian.net-sdk
C# | 68 lines | 50 code | 12 blank | 6 comment | 0 complexity | 4d9af3757fb3978131980d361504d164 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. using System.Linq;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Atlassian.Jira.Remote;
  5. using Moq;
  6. using Xunit;
  7. namespace Atlassian.Jira.Test
  8. {
  9. public class ServiceLocatorTest
  10. {
  11. [Fact]
  12. public void UserCanProvideCustomProjectVersionService()
  13. {
  14. // Arrange
  15. var projects = new Mock<IProjectService>();
  16. var client = new Mock<IJiraRestClient>();
  17. var jira = Jira.CreateRestClient(client.Object);
  18. var remoteProject = new RemoteProject() { id = "projId", key = "projKey", name = "my project" };
  19. projects.Setup(s => s.GetProjectsAsync(It.IsAny<CancellationToken>()))
  20. .Returns(Task.FromResult(Enumerable.Repeat(new Project(jira, remoteProject), 1)));
  21. jira.Services.Register<IProjectService>(() => projects.Object);
  22. var versionResource = new Mock<IProjectVersionService>();
  23. var remoteVersion = new RemoteVersion() { id = "123", name = "my version" };
  24. var version = new ProjectVersion(jira, remoteVersion);
  25. versionResource.Setup(s => s.GetVersionsAsync("projKey", CancellationToken.None))
  26. .Returns(Task.FromResult(Enumerable.Repeat<ProjectVersion>(version, 1)));
  27. jira.Services.Register<IProjectVersionService>(() => versionResource.Object);
  28. // Act
  29. var versions = jira.Projects.GetProjectsAsync().Result.First().GetVersionsAsync().Result;
  30. // Assert
  31. Assert.Equal("my version", versions.First().Name);
  32. }
  33. [Fact]
  34. public void UserCanProvideCustomProjectComponentsService()
  35. {
  36. // Arrange
  37. var projects = new Mock<IProjectService>();
  38. var client = new Mock<IJiraRestClient>();
  39. var jira = Jira.CreateRestClient(client.Object);
  40. var remoteProject = new RemoteProject() { id = "projId", key = "projKey", name = "my project" };
  41. projects.Setup(s => s.GetProjectsAsync(It.IsAny<CancellationToken>()))
  42. .Returns(Task.FromResult(Enumerable.Repeat(new Project(jira, remoteProject), 1)));
  43. jira.Services.Register<IProjectService>(() => projects.Object);
  44. var componentResource = new Mock<IProjectComponentService>();
  45. var remoteComponent = new RemoteComponent() { id = "123", name = "my component" };
  46. var component = new ProjectComponent(remoteComponent);
  47. componentResource.Setup(s => s.GetComponentsAsync("projKey", CancellationToken.None))
  48. .Returns(Task.FromResult(Enumerable.Repeat<ProjectComponent>(component, 1)));
  49. jira.Services.Register<IProjectComponentService>(() => componentResource.Object);
  50. // Act
  51. var components = jira.Projects.GetProjectsAsync().Result.First().GetComponentsAsync().Result;
  52. // Assert
  53. Assert.Equal("my component", components.First().Name);
  54. }
  55. }
  56. }