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
            }));
        }
Beispiel #3
0
        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);
        }