コード例 #1
0
ファイル: CommitStatTests.cs プロジェクト: T-rav/GD3
            public void GivenLinesAdded_Expect_LinesAdded_On_Commit_Returned()
            {
                //---------------Arrange------------------
                var commit = new Commit
                {
                    Author = new Author
                    {
                        Name   = "T-rav",
                        Emails = new List <string> {
                            "*****@*****.**"
                        }
                    },
                    When  = DateTime.Now,
                    Patch = new List <Patch>
                    {
                        new Patch
                        {
                            Contents     = "a\nb",
                            LinesAdded   = 2,
                            LinesRemoved = 0
                        }
                    }
                };
                var sut = new CommitStat(commit);
                //---------------Act----------------------
                var actual = sut.LinesAdded;

                //---------------Assert-------------------
                actual.Should().Be(commit.LinesAdded);
            }
コード例 #2
0
ファイル: CommitStatTests.cs プロジェクト: T-rav/GD3
            public void Given_One_New_Line_Added_In_One_Old_File_Expect_Old_Code_Base_Impact()
            {
                //---------------Arrange------------------
                var commit = new Commit
                {
                    Author = new Author
                    {
                        Name   = "T-rav",
                        Emails = new List <string> {
                            "*****@*****.**"
                        }
                    },
                    When  = DateTime.Now,
                    Patch = new List <Patch>
                    {
                        new Patch
                        {
                            Contents     = "@@ 1,0 1,0 @@ namespace Test.Namespace \na",
                            LinesAdded   = 1,
                            LinesRemoved = 0,
                            ChangeType   = ChangeType.Modified
                        }
                    }
                };
                var sut = new CommitStat(commit);
                //---------------Act----------------------
                var actual = sut.Impact(new List <string>(), false);
                //---------------Assert-------------------
                var expectedImpact = 0.0015;

                actual.Should().Be(expectedImpact);
            }
コード例 #3
0
ファイル: CommitStatTests.cs プロジェクト: T-rav/GD3
            public void GivenLinesAddedAndRemoved_Expect_Churn()
            {
                //---------------Arrange------------------
                var commit = new Commit
                {
                    Author = new Author
                    {
                        Name   = "T-rav",
                        Emails = new List <string> {
                            "*****@*****.**"
                        }
                    },
                    When  = DateTime.Now,
                    Patch = new List <Patch>
                    {
                        new Patch
                        {
                            Contents     = string.Empty,
                            LinesAdded   = 5,
                            LinesRemoved = 3
                        }
                    }
                };
                var sut = new CommitStat(commit);
                //---------------Act----------------------
                var actual = sut.Churn();

                //---------------Assert-------------------
                actual.Should().Be(0.6);
            }
コード例 #4
0
ファイル: CommitStatTests.cs プロジェクト: T-rav/GD3
            public void Given_No_Change_Expect_Zero_Impact()
            {
                //---------------Arrange------------------
                var commit = new Commit
                {
                    Author = new Author
                    {
                        Name   = "T-rav",
                        Emails = new List <string> {
                            "*****@*****.**"
                        }
                    },
                    When  = DateTime.Now,
                    Patch = new List <Patch>
                    {
                        new Patch
                        {
                            Contents     = string.Empty,
                            LinesAdded   = 0,
                            LinesRemoved = 0
                        }
                    }
                };
                var sut = new CommitStat(commit);
                //---------------Act----------------------
                var actual = sut.Impact(new List <string>(), false);

                //---------------Assert-------------------
                actual.Should().Be(0);
            }
コード例 #5
0
        private CommitStat GetCommitStat(Repository repo, Commit commit)
        {
            var patch = GetDiffPatch(repo, commit);

            var stat = new CommitStat
            {
                Hash         = commit.Sha,
                Date         = commit.Author.When.DateTime,
                Message      = commit.MessageShort,
                AuthorName   = commit.Author.Name,
                AuthorEmail  = commit.Author.Email,
                LinesAdded   = patch.LinesAdded,
                LinesDeleted = patch.LinesDeleted,
            };

            return(stat);
        }