public Codegram GenerateCodegramFromDiffContent(string diffContent, int maxSize)
        {
            GitDiffParser parser   = new GitDiffParser();
            var           diffInfo = parser.Parse(diffContent);

            return(GenerateCodegramFromDiffContent(diffInfo, maxSize));
        }
        public void Parse_EmptyGitDiff_Expect0HunkRangeInfos()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(EmptyGitDiff, 0);

            //Act
            var hunkRangeInfos = gitDiffParser.Parse().ToList();

            //Assert
            hunkRangeInfos.Count.ShouldBe(0);
        }
        public void Parse_DiffFromLibGit_Expect5HunkRangeInfos()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(DiffFromLibGit, 0);

            //Act
            var hunkRangeInfos = gitDiffParser.Parse().ToList();

            //Assert
            hunkRangeInfos.Count.ShouldBe(5);
        }
        public void Parse_DiffFromLibGit_ExpectFifthHunkRangeToBeAddition()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(DiffFromLibGit, 0);

            //Act
            var hunkRangeInfos = gitDiffParser.Parse().ToList();

            //Assert
            hunkRangeInfos[4].IsDeletion.ShouldBe(false);
            hunkRangeInfos[4].IsAddition.ShouldBe(true);
            hunkRangeInfos[4].IsModification.ShouldBe(false);
        }
        public void Parse_DiffFromLibGit_ExpectSecondHunkRangeOriginalText()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(DiffFromLibGit, 0);

            //Act
            var hunkRangeInfos = gitDiffParser.Parse().ToList();

            //Assert
            hunkRangeInfos[1].OriginalText.ShouldBe(new List <string> {
                "    class Class1"
            });
        }
        public void Parse_WithOneHunkWithoutLineCount_ExpectHunkRanges()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(ThirdGitDiff, 0);

            //Act
            var hunkRanges = gitDiffParser.Parse().ToList();

            //Assert
            hunkRanges[0].OriginalHunkRange.StartingLineNumber.ShouldBe(0);
            hunkRanges[0].OriginalHunkRange.NumberOfLines.ShouldBe(1);
            hunkRanges[0].NewHunkRange.StartingLineNumber.ShouldBe(0);
            hunkRanges[0].NewHunkRange.NumberOfLines.ShouldBe(1);
        }
Example #7
0
        private static void ParseUnifiedDiff(string path, GitDiffParser diffParser, GitCommit commit)
        {
            commit.Difflets = diffParser.Parse(commit.UnifiedDiff);

            foreach (var file in commit.Files)
            {
                if (file.Status != "A")
                {
                    file.BeforeText = GitCommands.ShowFileBeforeCommit(path, commit.Sha, file.File);
                }
                if (file.Status != "D")
                {
                    file.AfterText = GitCommands.ShowFileAfterCommit(path, commit.Sha, file.File);
                }
            }
        }
Example #8
0
        static void PrintDiff(string diffFile)
        {
            GitDiffParser parser = new GitDiffParser();

            var chunks = parser.Parse(File.ReadAllText(diffFile));

            foreach (var file in chunks.Files)
            {
                foreach (var hunk in file.Hunks)
                {
                    Console.WriteLine(string.Format("{0} {1} #{2} {3}",
                                                    hunk.FileName,
                                                    hunk.NewHunkRange.StartingLineNumber,
                                                    hunk.NewHunkRange.NumberOfLines,
                                                    hunk.IsModification
                                                    ));
                }
            }
        }
        public void Parse_WithThreeHunk_ExpectHunkRanges()
        {
            //Arrange
            var gitDiffParser = new GitDiffParser(SecondGitDiff, 0);

            //Act
            var hunkRanges = gitDiffParser.Parse().ToList();

            //Assert
            hunkRanges[0].OriginalHunkRange.StartingLineNumber.ShouldBe(67);
            hunkRanges[0].OriginalHunkRange.NumberOfLines.ShouldBe(2);
            hunkRanges[0].NewHunkRange.StartingLineNumber.ShouldBe(66);
            hunkRanges[0].NewHunkRange.NumberOfLines.ShouldBe(0);

            hunkRanges[1].OriginalHunkRange.StartingLineNumber.ShouldBe(169);
            hunkRanges[1].OriginalHunkRange.NumberOfLines.ShouldBe(0);
            hunkRanges[1].NewHunkRange.StartingLineNumber.ShouldBe(168);
            hunkRanges[1].NewHunkRange.NumberOfLines.ShouldBe(27);

            hunkRanges[2].OriginalHunkRange.StartingLineNumber.ShouldBe(184);
            hunkRanges[2].OriginalHunkRange.NumberOfLines.ShouldBe(2);
            hunkRanges[2].NewHunkRange.StartingLineNumber.ShouldBe(208);
            hunkRanges[2].NewHunkRange.NumberOfLines.ShouldBe(0);
        }