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()); }
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()); }
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); } }
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")); }
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); }
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); }
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); } }