Exemple #1
0
            public void Should_Read_Correct_Number_Of_Issues_Not_Related_To_A_File()
            {
                // Given
                var issue1 =
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var issue2 =
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2,
                }));

                // When
                var issues = fixture.ReadIssues().ToList();

                // Then
                issues.Count.ShouldBe(2);
                issues.ShouldContain(issue1);
                issues.ShouldContain(issue2);
            }
Exemple #2
0
            public void Should_Initialize_Issue_Provider()
            {
                // Given
                var fixture = new IssuesFixture();

                // When
                fixture.ReadIssues();

                // Then
                fixture.IssueProviders.ShouldAllBe(x => x.Settings == fixture.Settings);
            }
Exemple #3
0
            public void Should_Initialize_All_Issue_Provider()
            {
                // Given
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    new Issue(
                        @"src\Cake.Issues.Tests\FakeIssueProvider.cs",
                        10,
                        "Foo",
                        0,
                        "Foo",
                        "Foo"),
                    new Issue(
                        @"src\Cake.Issues.Tests\FakeIssueProvider.cs",
                        12,
                        "Bar",
                        0,
                        "Bar",
                        "Bar")
                }));
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    new Issue(
                        @"src\Cake.Issues.Tests\Foo.cs",
                        5,
                        "Foo",
                        0,
                        "Foo",
                        "Foo"),
                    new Issue(
                        @"src\Cake.Issues.Tests\Bar.cs",
                        7,
                        "Bar",
                        0,
                        "Bar",
                        "Bar")
                }));

                // When
                fixture.ReadIssues(IssueCommentFormat.Undefined);

                // Then
                fixture.IssueProviders.ShouldAllBe(x => x.Settings == fixture.Settings);
            }
Exemple #4
0
            public void Should_Throw_If_Issue_Provider_List_Is_Empty()
            {
                // Given
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();

                // When
                var result = Record.Exception(() => fixture.ReadIssues());

                // Then
                result.IsArgumentException("issueProviders");
            }
Exemple #5
0
            public void Should_Set_FileLink_Property()
            {
                // Given
                var filePath1 = @"src\Cake.Issues.Tests\Foo.cs";
                var line1     = 10;
                var endLine1  = 12;
                var issue1    =
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .InFile(filePath1, line1, endLine1, 1, 1)
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var filePath2 = @"src\Cake.Issues.Tests\Bar.cs";
                var line2     = 12;
                var issue2    =
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .InFile(filePath2, line2)
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2,
                }));
                var repoUrl = "https://github.com/cake-contrib/Cake.Issues.Website";
                var branch  = "develop";

                fixture.Settings.FileLinkSettings =
                    FileLinkSettings.ForGitHub(new System.Uri(repoUrl)).Branch(branch);

                // When
                var issues = fixture.ReadIssues().ToList();

                // Then
                issues.Count.ShouldBe(2);
                issues.ShouldContain(issue1);
                issue1.FileLink.ToString()
                .ShouldBe($"{repoUrl}/blob/{branch}/{filePath1.Replace(@"\", "/")}#L{line1}-L{endLine1}");
                issues.ShouldContain(issue2);
                issue2.FileLink.ToString()
                .ShouldBe($"{repoUrl}/blob/{branch}/{filePath2.Replace(@"\", "/")}#L{line2}");
            }
Exemple #6
0
            public void Should_Throw_If_Settings_Are_Null()
            {
                // Given
                var fixture = new IssuesFixture
                {
                    Settings = null,
                };

                // When
                var result = Record.Exception(() => fixture.ReadIssues());

                // Then
                result.IsArgumentNullException("settings");
            }
Exemple #7
0
            public void Should_Throw_If_Issue_Provider_Is_Null()
            {
                // Given
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(null);

                // When
                var result = Record.Exception(() => fixture.ReadIssues());

                // Then
                result.IsArgumentOutOfRangeException("issueProviders");
            }
Exemple #8
0
            public void Should_Throw_If_Issue_Provider_List_Is_Null()
            {
                // Given
                var fixture = new IssuesFixture
                {
                    IssueProviders = null,
                };

                // When
                var result = Record.Exception(() => fixture.ReadIssues());

                // Then
                result.IsArgumentNullException("issueProviders");
            }
Exemple #9
0
            public void Should_Throw_If_Log_Is_Null()
            {
                // Given
                var fixture = new IssuesFixture
                {
                    Log = null,
                };

                // When
                var result = Record.Exception(() => fixture.ReadIssues());

                // Then
                result.IsArgumentNullException("log");
            }
Exemple #10
0
            public void Should_Initialize_All_Issue_Provider()
            {
                // Given
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 10)
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create(),
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 12)
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create(),
                }));
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .InFile(@"src\Cake.Issues.Tests\Foo.cs", 5)
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create(),
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .InFile(@"src\Cake.Issues.Tests\Bar.cs", 7)
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create(),
                }));

                // When
                fixture.ReadIssues();

                // Then
                fixture.IssueProviders.ShouldAllBe(x => x.Settings == fixture.Settings);
            }
Exemple #11
0
            public void Should_Set_Run_Property()
            {
                // Given
                var issue1 =
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 10)
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var issue2 =
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 12)
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2,
                }));
                var run = "Run";

                fixture.Settings.Run = run;

                // When
                var issues = fixture.ReadIssues().ToList();

                // Then
                issues.Count.ShouldBe(2);
                issues.ShouldContain(issue1);
                issue1.Run.ShouldBe(run);
                issues.ShouldContain(issue2);
                issue2.Run.ShouldBe(run);
            }
Exemple #12
0
            public void Should_Read_Correct_Number_Of_Issues_Not_Related_To_A_File()
            {
                // Given
                var issue1 =
                    new Issue(
                        null,
                        null,
                        "Foo",
                        0,
                        "Foo",
                        "Foo");
                var issue2 =
                    new Issue(
                        null,
                        null,
                        "Bar",
                        0,
                        "Bar",
                        "Bar");
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2
                }));

                // When
                var issues = fixture.ReadIssues(IssueCommentFormat.Undefined).ToList();

                // Then
                issues.Count.ShouldBe(2);
                issues.ShouldContain(issue1);
                issues.ShouldContain(issue2);
            }
Exemple #13
0
            public void Should_Read_Correct_Number_Of_Issues()
            {
                // Given
                var issue1 =
                    IssueBuilder
                    .NewIssue("Foo", "ProviderTypeFoo", "ProviderNameFoo")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 10)
                    .OfRule("Foo")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var issue2 =
                    IssueBuilder
                    .NewIssue("Bar", "ProviderTypeBar", "ProviderNameBar")
                    .InFile(@"src\Cake.Issues.Tests\FakeIssueProvider.cs", 12)
                    .OfRule("Bar")
                    .WithPriority(IssuePriority.Warning)
                    .Create();
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2,
                }));

                // When
                var issues = fixture.ReadIssues(IssueCommentFormat.Undefined).ToList();

                // Then
                issues.Count.ShouldBe(2);
                issues.ShouldContain(issue1);
                issues.ShouldContain(issue2);
            }
Exemple #14
0
            public void Should_Read_Correct_Number_Of_Issues_From_Multiple_Providers()
            {
                // Given
                var issue1 =
                    new Issue(
                        @"src\Cake.Issues.Tests\FakeIssueProvider.cs",
                        10,
                        "Foo",
                        0,
                        "Foo",
                        "Foo");
                var issue2 =
                    new Issue(
                        @"src\Cake.Issues.Tests\FakeIssueProvider.cs",
                        12,
                        "Bar",
                        0,
                        "Bar",
                        "Bar");
                var issue3 =
                    new Issue(
                        @"src\Cake.Issues.Tests\Foo.cs",
                        5,
                        "Foo",
                        0,
                        "Foo",
                        "Foo");
                var issue4 =
                    new Issue(
                        @"src\Cake.Issues.Tests\Bar.cs",
                        7,
                        "Bar",
                        0,
                        "Bar",
                        "Bar");
                var fixture = new IssuesFixture();

                fixture.IssueProviders.Clear();
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue1,
                    issue2
                }));
                fixture.IssueProviders.Add(
                    new FakeIssueProvider(
                        fixture.Log,
                        new List <IIssue>
                {
                    issue3,
                    issue4
                }));

                // When
                var issues = fixture.ReadIssues(IssueCommentFormat.Undefined).ToList();

                // Then
                issues.Count.ShouldBe(4);
                issues.ShouldContain(issue1);
                issues.ShouldContain(issue2);
                issues.ShouldContain(issue3);
                issues.ShouldContain(issue4);
            }