Esempio n. 1
0
        public virtual void TestCreateFileHeader_Modify()
        {
            ObjectId   adId       = Blob("a\nd\n");
            ObjectId   abcdId     = Blob("a\nb\nc\nd\n");
            string     diffHeader = MakeDiffHeader(PATH_A, PATH_A, adId, abcdId);
            DiffEntry  ad         = DiffEntry.Delete(PATH_A, adId);
            DiffEntry  abcd       = DiffEntry.Add(PATH_A, abcdId);
            DiffEntry  mod        = DiffEntry.Pair(DiffEntry.ChangeType.MODIFY, ad, abcd, 0);
            FileHeader fh         = df.ToFileHeader(mod);

            NUnit.Framework.Assert.AreEqual(diffHeader, RawParseUtils.Decode(fh.GetBuffer()));
            NUnit.Framework.Assert.AreEqual(0, fh.GetStartOffset());
            NUnit.Framework.Assert.AreEqual(fh.GetBuffer().Length, fh.GetEndOffset());
            NUnit.Framework.Assert.AreEqual(FileHeader.PatchType.UNIFIED, fh.GetPatchType());
            NUnit.Framework.Assert.AreEqual(1, fh.GetHunks().Count);
            HunkHeader hh = fh.GetHunks()[0];

            NUnit.Framework.Assert.AreEqual(1, hh.ToEditList().Count);
            EditList el = hh.ToEditList();

            NUnit.Framework.Assert.AreEqual(1, el.Count);
            Edit e = el[0];

            NUnit.Framework.Assert.AreEqual(1, e.GetBeginA());
            NUnit.Framework.Assert.AreEqual(1, e.GetEndA());
            NUnit.Framework.Assert.AreEqual(1, e.GetBeginB());
            NUnit.Framework.Assert.AreEqual(3, e.GetEndB());
            NUnit.Framework.Assert.AreEqual(Edit.Type.INSERT, e.GetType());
        }
Esempio n. 2
0
        public virtual void TestCreateFileHeader_Add()
        {
            ObjectId   adId       = Blob("a\nd\n");
            DiffEntry  ent        = DiffEntry.Add("FOO", adId);
            FileHeader fh         = df.ToFileHeader(ent);
            string     diffHeader = "diff --git a/FOO b/FOO\n" + "new file mode " + REGULAR_FILE
                                    + "\n" + "index " + ObjectId.ZeroId.Abbreviate(8).Name + ".." + adId.Abbreviate(
                8).Name + "\n" + "--- /dev/null\n" + "+++ b/FOO\n";

            //
            //
            //
            NUnit.Framework.Assert.AreEqual(diffHeader, RawParseUtils.Decode(fh.GetBuffer()));
            NUnit.Framework.Assert.AreEqual(0, fh.GetStartOffset());
            NUnit.Framework.Assert.AreEqual(fh.GetBuffer().Length, fh.GetEndOffset());
            NUnit.Framework.Assert.AreEqual(FileHeader.PatchType.UNIFIED, fh.GetPatchType());
            NUnit.Framework.Assert.AreEqual(1, fh.GetHunks().Count);
            HunkHeader hh = fh.GetHunks()[0];

            NUnit.Framework.Assert.AreEqual(1, hh.ToEditList().Count);
            EditList el = hh.ToEditList();

            NUnit.Framework.Assert.AreEqual(1, el.Count);
            Edit e = el[0];

            NUnit.Framework.Assert.AreEqual(0, e.GetBeginA());
            NUnit.Framework.Assert.AreEqual(0, e.GetEndA());
            NUnit.Framework.Assert.AreEqual(0, e.GetBeginB());
            NUnit.Framework.Assert.AreEqual(2, e.GetEndB());
            NUnit.Framework.Assert.AreEqual(Edit.Type.INSERT, e.GetType());
        }
Esempio n. 3
0
        public void testParse_AddNoNewline()
        {
            GitSharp.Core.Patch.Patch p = ParseTestPatchFile(PatchsDir + "testParse_AddNoNewline.patch");
            Assert.AreEqual(1, p.getFiles().Count);
            Assert.IsTrue(p.getErrors().Count == 0, GetAllErrorsFromPatch(p));

            FileHeader f = p.getFiles()[0];

            Assert.AreEqual("a", f.NewName);
            Assert.AreEqual(256, f.StartOffset);

            Assert.AreEqual("f2ad6c7", f.getOldId().name());
            Assert.AreEqual("c59d9b6", f.getNewId().name());
            Assert.AreEqual(FileHeader.PatchTypeEnum.UNIFIED, f.getPatchType());
            Assert.AreEqual(FileMode.RegularFile, f.GetOldMode());
            Assert.AreEqual(FileMode.RegularFile, f.NewMode);
            Assert.AreEqual(1, f.Hunks.Count);
            {
                HunkHeader h = f.Hunks[0];
                Assert.AreEqual(f, h.File);
                Assert.AreEqual(321, h.StartOffset);
                Assert.AreEqual(1, h.OldImage.StartLine);
                Assert.AreEqual(1, h.OldImage.LineCount);
                Assert.AreEqual(1, h.NewStartLine);
                Assert.AreEqual(1, h.NewLineCount);

                Assert.AreEqual(0, h.LinesContext);
                Assert.AreEqual(1, h.OldImage.LinesAdded);
                Assert.AreEqual(1, h.OldImage.LinesDeleted);
                Assert.AreEqual(f.getOldId(), h.OldImage.Id);

                Assert.AreEqual(367, h.EndOffset);
            }
        }
Esempio n. 4
0
        private bool IsNoNewlineAtEndOfFile(FileHeader fh)
        {
            HunkHeader lastHunk = fh.GetHunks()[fh.GetHunks().Count - 1];
            RawText    lhrt     = new RawText(lastHunk.GetBuffer());

            return(lhrt.GetString(lhrt.Size() - 1).Equals("\\ No newline at end of file"));
        }
Esempio n. 5
0
        public virtual void TestCreateFileHeader_Binary()
        {
            ObjectId   adId       = Blob("a\nd\n");
            ObjectId   binId      = Blob("a\nb\nc\n\x0\x0\x0\x0d\n");
            string     diffHeader = MakeDiffHeader(PATH_A, PATH_B, adId, binId) + "Binary files differ\n";
            DiffEntry  ad         = DiffEntry.Delete(PATH_A, adId);
            DiffEntry  abcd       = DiffEntry.Add(PATH_B, binId);
            DiffEntry  mod        = DiffEntry.Pair(DiffEntry.ChangeType.MODIFY, ad, abcd, 0);
            FileHeader fh         = df.ToFileHeader(mod);

            NUnit.Framework.Assert.AreEqual(diffHeader, RawParseUtils.Decode(fh.GetBuffer()));
            NUnit.Framework.Assert.AreEqual(FileHeader.PatchType.BINARY, fh.GetPatchType());
            NUnit.Framework.Assert.AreEqual(1, fh.GetHunks().Count);
            HunkHeader hh = fh.GetHunks()[0];

            NUnit.Framework.Assert.AreEqual(0, hh.ToEditList().Count);
        }
Esempio n. 6
0
        public virtual void TestCreateFileHeader_GitLink()
        {
            ObjectId aId        = Blob("a\n");
            ObjectId bId        = Blob("b\n");
            string   diffHeader = MakeDiffHeaderModeChange(PATH_A, PATH_A, aId, bId, GITLINK, REGULAR_FILE
                                                           ) + "-Subproject commit " + aId.Name + "\n";
            DiffEntry ad = DiffEntry.Delete(PATH_A, aId);

            ad.oldMode = FileMode.GITLINK;
            DiffEntry  abcd = DiffEntry.Add(PATH_A, bId);
            DiffEntry  mod  = DiffEntry.Pair(DiffEntry.ChangeType.MODIFY, ad, abcd, 0);
            FileHeader fh   = df.ToFileHeader(mod);

            NUnit.Framework.Assert.AreEqual(diffHeader, RawParseUtils.Decode(fh.GetBuffer()));
            NUnit.Framework.Assert.AreEqual(1, fh.GetHunks().Count);
            HunkHeader hh = fh.GetHunks()[0];

            NUnit.Framework.Assert.AreEqual(0, hh.ToEditList().Count);
        }
Esempio n. 7
0
        public void testParse_ConfigCaseInsensitive()
        {
            GitSharp.Core.Patch.Patch p = ParseTestPatchFile(PatchsDir + "testParse_ConfigCaseInsensitive.patch");
            Assert.AreEqual(2, p.getFiles().Count);
            Assert.IsTrue(p.getErrors().Count == 0);

            FileHeader fRepositoryConfigTest = p.getFiles()[0];
            FileHeader fRepositoryConfig     = p.getFiles()[1];

            Assert.AreEqual(
                "org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java",
                fRepositoryConfigTest.NewName);

            Assert.AreEqual(
                "org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java",
                fRepositoryConfig.NewName);

            Assert.AreEqual(572, fRepositoryConfigTest.StartOffset);
            Assert.AreEqual(1490, fRepositoryConfig.StartOffset);

            Assert.AreEqual("da7e704", fRepositoryConfigTest.getOldId().name());
            Assert.AreEqual("34ce04a", fRepositoryConfigTest.getNewId().name());
            Assert.AreEqual(FileHeader.PatchTypeEnum.UNIFIED, fRepositoryConfigTest.getPatchType());
            Assert.AreEqual(FileMode.RegularFile, fRepositoryConfigTest.GetOldMode());
            Assert.AreEqual(FileMode.RegularFile, fRepositoryConfigTest.NewMode);
            Assert.AreEqual(1, fRepositoryConfigTest.Hunks.Count);
            {
                HunkHeader h = fRepositoryConfigTest.Hunks[0];
                Assert.AreEqual(fRepositoryConfigTest, h.File);
                Assert.AreEqual(921, h.StartOffset);
                Assert.AreEqual(109, h.OldImage.StartLine);
                Assert.AreEqual(4, h.OldImage.LineCount);
                Assert.AreEqual(109, h.NewStartLine);
                Assert.AreEqual(11, h.NewLineCount);

                Assert.AreEqual(4, h.LinesContext);
                Assert.AreEqual(7, h.OldImage.LinesAdded);
                Assert.AreEqual(0, h.OldImage.LinesDeleted);
                Assert.AreEqual(fRepositoryConfigTest.getOldId(), h.OldImage.Id);

                Assert.AreEqual(1490, h.EndOffset);
            }

            Assert.AreEqual("45c2f8a", fRepositoryConfig.getOldId().name());
            Assert.AreEqual("3291bba", fRepositoryConfig.getNewId().name());
            Assert.AreEqual(FileHeader.PatchTypeEnum.UNIFIED, fRepositoryConfig
                            .getPatchType());
            Assert.AreEqual(FileMode.RegularFile, fRepositoryConfig.GetOldMode());
            Assert.AreEqual(FileMode.RegularFile, fRepositoryConfig.NewMode);
            Assert.AreEqual(3, fRepositoryConfig.Hunks.Count);
            {
                HunkHeader h = fRepositoryConfig.Hunks[0];
                Assert.AreEqual(fRepositoryConfig, h.File);
                Assert.AreEqual(1803, h.StartOffset);
                Assert.AreEqual(236, h.OldImage.StartLine);
                Assert.AreEqual(9, h.OldImage.LineCount);
                Assert.AreEqual(236, h.NewStartLine);
                Assert.AreEqual(9, h.NewLineCount);

                Assert.AreEqual(7, h.LinesContext);
                Assert.AreEqual(2, h.OldImage.LinesAdded);
                Assert.AreEqual(2, h.OldImage.LinesDeleted);
                Assert.AreEqual(fRepositoryConfig.getOldId(), h.OldImage.Id);

                Assert.AreEqual(2434, h.EndOffset);
            }
            {
                HunkHeader h = fRepositoryConfig.Hunks[1];
                Assert.AreEqual(2434, h.StartOffset);
                Assert.AreEqual(300, h.OldImage.StartLine);
                Assert.AreEqual(7, h.OldImage.LineCount);
                Assert.AreEqual(300, h.NewStartLine);
                Assert.AreEqual(7, h.NewLineCount);

                Assert.AreEqual(6, h.LinesContext);
                Assert.AreEqual(1, h.OldImage.LinesAdded);
                Assert.AreEqual(1, h.OldImage.LinesDeleted);

                Assert.AreEqual(2816, h.EndOffset);
            }
            {
                HunkHeader h = fRepositoryConfig.Hunks[2];
                Assert.AreEqual(2816, h.StartOffset);
                Assert.AreEqual(954, h.OldImage.StartLine);
                Assert.AreEqual(7, h.OldImage.LineCount);
                Assert.AreEqual(954, h.NewStartLine);
                Assert.AreEqual(7, h.NewLineCount);

                Assert.AreEqual(6, h.LinesContext);
                Assert.AreEqual(1, h.OldImage.LinesAdded);
                Assert.AreEqual(1, h.OldImage.LinesDeleted);

                Assert.AreEqual(3035, h.EndOffset);
            }
        }