public async Task GetAllAsync_Always_CallsGitHubPullRequestClient() { _pullRequestsClientMock.Setup(x => x.GetAllForRepository(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(PullRequestBuilder.GenerateValidPullRequests()); var repositories = Common.Tests.Builders.Domain.RepositoryBuilder.GenerateValidRepositories(); await _sut.GetAllAsync(repositories); foreach (var repository in repositories) { _pullRequestsClientMock.Verify(x => x.GetAllForRepository(repository.OwnerLogin, repository.Name), Times.Once); } }
public async Task GetAllAsync_IfGetAllForOrgReturnsRepositories_ReturnsRepositories() { var pullRequests = PullRequestBuilder.GenerateValidPullRequests(); _pullRequestsClientMock.Setup(x => x.GetAllForRepository(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(pullRequests); var result = await _sut.GetAllAsync(Common.Tests.Builders.Domain.RepositoryBuilder.GenerateValidRepositories()); result.ShouldBeEquivalentTo(pullRequests.Select(x => new Domain.PullRequest { Title = x.Title, AuthorName = x.User.Name, Description = x.Body, Number = x.Number, HtmlUrl = x.Url, CreatedDate = x.CreatedAt.UtcDateTime, LastUpdateDate = x.UpdatedAt.UtcDateTime })); }
public async Task TestLoadPullRequestsAsync() { Options options = new Options(); Mock <ILog> logMock = new Mock <ILog>(); Mock <IEnvironmentAbstraction> environmentMock = new Mock <IEnvironmentAbstraction>(); Mock <IFileSystem> fileSystemMock = new Mock <IFileSystem>(); Mock <IGitHubClient> gitHubClientMock = new Mock <IGitHubClient>(); Mock <IMarkdownParser> markdownParserMock = new Mock <IMarkdownParser>(); Milestone milestone = new MilestoneBuilder { Title = "v1.0.0", ClosedAt = DateTimeOffset.ParseExact("15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(); PullRequest pullRequest = new PullRequestBuilder { Milestone = milestone, Body = File.ReadAllText("./Assets/description_at-the-middle.md"), }.Build(); gitHubClientMock.Setup(mock => mock.Repository.Get(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult(new Repository(1337))); gitHubClientMock.Setup(mock => mock.PullRequest.GetAllForRepository(It.IsAny <long>(), It.IsAny <PullRequestRequest>())) .Returns(Task.FromResult( new List <PullRequest> { pullRequest }.AsReadOnly() as IReadOnlyList <PullRequest>)); TestVerbHandler verbHandler = new TestVerbHandler(options, logMock.Object, environmentMock.Object, fileSystemMock.Object, gitHubClientMock.Object, markdownParserMock.Object); IReadOnlyList <PullRequest> result = await verbHandler.LoadPullRequestsAsync(); NotNull(result); AreEqual(1, result.Count); AreEqual(pullRequest, result[0]); }
public void TestFrom() { PullRequest pr1 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone1", ClosedAt = DateTimeOffset.ParseExact( "01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr2 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone1", ClosedAt = DateTimeOffset.ParseExact( "01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr3 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr4 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr5 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr6 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone3", }.Build(), }.Build(); PullRequest pr7 = new PullRequestBuilder().Build(); IReadOnlyList <PullRequest> pullRequests = new[] { pr1, pr2, pr3, pr4, pr5, pr6, pr7, }; IList <MilestoneObject> result = MilestoneObject.From(pullRequests) .ToList(); AreEqual(4, result.Count()); AreEqual(null, result[0] .Milestone?.Title); AreEqual(1, result[0] .PullRequests.Count); AreEqual("Milestone3", result[1] .Milestone?.Title); AreEqual(1, result[1] .PullRequests.Count); AreEqual("Milestone1", result[2] .Milestone?.Title); AreEqual(2, result[2] .PullRequests.Count); AreEqual("Milestone2", result[3] .Milestone?.Title); AreEqual(3, result[3] .PullRequests.Count); }