コード例 #1
0
            public void Should_Call_InternalFetchDiscussionThreads()
            {
                // Given
                var log = new FakeLog();
                var pullRequestSystem = new FakePullRequestSystem(log);
                var settings          = new ReportIssuesToPullRequestSettings(@"c:\repo");
                var discussionThreads =
                    new List <IPullRequestDiscussionThread>
                {
                    new PullRequestDiscussionThread(
                        1,
                        PullRequestDiscussionStatus.Active,
                        new FilePath(@"src\Cake.Issues.Tests\FakeIssueProvider.cs"),
                        new List <IPullRequestDiscussionComment>
                    {
                        new PullRequestDiscussionComment()
                        {
                            Content   = "Message Foo",
                            IsDeleted = false
                        }
                    })
                    {
                        CommentSource = settings.CommentSource,
                    }
                };
                var capability = new FakeDiscussionThreadsCapability(log, pullRequestSystem, discussionThreads);

                // When
                pullRequestSystem.Initialize(settings);
                var result = capability.FetchDiscussionThreads(settings.CommentSource);

                // Then
                result.ShouldBe(discussionThreads);
            }
コード例 #2
0
        /// <inheritdoc/>
        public virtual bool Initialize(ReportIssuesToPullRequestSettings settings)
        {
            settings.NotNull(nameof(settings));

            this.PrcaSettings = settings;

            return(true);
        }
            public void Should_Call_InternalResolveDiscussionThreads()
            {
                // Given
                var log = new FakeLog();
                var pullRequestSystem = new FakePullRequestSystem(log);
                var settings          = new ReportIssuesToPullRequestSettings(@"c:\repo");
                var discussionThread1 =
                    new PullRequestDiscussionThread(
                        1,
                        PullRequestDiscussionStatus.Active,
                        new FilePath(@"src\Cake.Issues.Tests\Foo.cs"),
                        new List <IPullRequestDiscussionComment>
                {
                    new PullRequestDiscussionComment()
                    {
                        Content   = "Message Foo",
                        IsDeleted = false
                    }
                })
                {
                    CommentIdentifier = "Message Foo",
                    CommentSource     = settings.CommentSource,
                };
                var discussionThread2 =
                    new PullRequestDiscussionThread(
                        1,
                        PullRequestDiscussionStatus.Active,
                        new FilePath(@"src\Cake.Issues.Tests\Bar.cs"),
                        new List <IPullRequestDiscussionComment>
                {
                    new PullRequestDiscussionComment()
                    {
                        Content   = "Message Bar",
                        IsDeleted = false
                    }
                })
                {
                    CommentIdentifier = "Message Bar",
                    CommentSource     = settings.CommentSource,
                };
                var discussionThreads =
                    new List <IPullRequestDiscussionThread>
                {
                    discussionThread1, discussionThread2
                };
                var capability = new FakeDiscussionThreadsCapability(log, pullRequestSystem, discussionThreads);

                // When
                pullRequestSystem.Initialize(settings);
                capability.ResolveDiscussionThreads(
                    new List <IPullRequestDiscussionThread>
                {
                    discussionThread1
                });

                // Then
                capability.ResolvedThreads.ShouldContain(discussionThread1);
            }
コード例 #4
0
            public void Should_Set_RepositoryRoot_If_Not_Null()
            {
                // Given
                DirectoryPath repoRoot = @"c:\repo";

                // When
                var settings = new ReportIssuesToPullRequestSettings(repoRoot);

                // Then
                settings.RepositoryRoot.ShouldBe(repoRoot);
            }
コード例 #5
0
            public void Should_Return_True()
            {
                // Given
                var provider = new FakeCodeAnalysisProvider(new FakeLog());
                var settings = new ReportIssuesToPullRequestSettings(@"c:\foo");

                // When
                var result = provider.Initialize(settings);

                // Then
                result.ShouldBe(true);
            }
コード例 #6
0
            public void Should_Set_Settings()
            {
                // Given
                var provider = new FakeCodeAnalysisProvider(new FakeLog());
                var settings = new ReportIssuesToPullRequestSettings(@"c:\foo");

                // When
                provider.Initialize(settings);

                // Then
                provider.PrcaSettings.ShouldBe(settings);
            }
コード例 #7
0
            public void Should_Return_True()
            {
                // Given
                var prSystem = new FakePullRequestSystem(new FakeLog());
                var settings = new ReportIssuesToPullRequestSettings(@"c:\foo");

                // When
                var result = prSystem.Initialize(settings);

                // Then
                result.ShouldBe(true);
            }
コード例 #8
0
            public void Should_Set_Settings()
            {
                // Given
                var prSystem = new FakePullRequestSystem(new FakeLog());
                var settings = new ReportIssuesToPullRequestSettings(@"c:\foo");

                // When
                prSystem.Initialize(settings);

                // Then
                prSystem.PrcaSettings.ShouldBe(settings);
            }
コード例 #9
0
        /// <summary>
        /// Returns settings for reporting issues to pull requests.
        /// </summary>
        /// <param name="context">The Cake context.</param>
        /// <returns>Settings for reporting issues to pull requests.</returns>
        protected static IReportIssuesToPullRequestSettings GetReportIssuesToPullRequestSettings(IssuesContext context)
        {
            var settings =
                new ReportIssuesToPullRequestSettings(context.State.ProjectRootDirectory)
            {
                MaxIssuesToPost                     = context.Parameters.PullRequestSystem.MaxIssuesToPost,
                MaxIssuesToPostAcrossRuns           = context.Parameters.PullRequestSystem.MaxIssuesToPostAcrossRuns,
                MaxIssuesToPostForEachIssueProvider = context.Parameters.PullRequestSystem.MaxIssuesToPostForEachIssueProvider
            };

            foreach (var providerIssueLimit in context.Parameters.PullRequestSystem.ProviderIssueLimits)
            {
                settings.ProviderIssueLimits.Add(providerIssueLimit.Key, providerIssueLimit.Value);
            }

            return(settings);
        }
コード例 #10
0
            public void Should_Call_InternalGetModifiedFilesInPullRequest()
            {
                // Given
                var log = new FakeLog();
                var pullRequestSystem = new FakePullRequestSystem(log);
                var settings          = new ReportIssuesToPullRequestSettings(@"c:\repo");
                var modifiedFiles     = new List <FilePath> {
                    @"foo.cs"
                };
                var capability = new FakeFilteringByModifiedFilesCapability(log, pullRequestSystem, modifiedFiles);

                // When
                pullRequestSystem.Initialize(settings);
                var result = capability.GetModifiedFilesInPullRequest();

                // Then
                result.ShouldBe(modifiedFiles);
            }
コード例 #11
0
        public override bool Initialize(ReportIssuesToPullRequestSettings settings)
        {
            var result = base.Initialize(settings);

            return(result && !this.ShouldFailOnInitialization);
        }
 /// <inheritdoc/>
 public override bool Initialize(ReportIssuesToPullRequestSettings settings)
 {
     // Fail initialization if no pull request could be found.
     return(base.Initialize(settings) && this.azureDevOpsPullRequest.HasPullRequestLoaded);
 }
コード例 #13
0
 /// <inheritdoc/>
 public override bool Initialize(ReportIssuesToPullRequestSettings settings)
 {
     // Fail initialization if no pull request could be found.
     return(base.Initialize(settings) && this.pullRequest != null);
 }