summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffFormatterTest.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffFormatterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffFormatterTest.java
index 24b0f8141e..58348d5117 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffFormatterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffFormatterTest.java
@@ -260,6 +260,68 @@ public class DiffFormatterTest extends RepositoryTestCase {
}
@Test
+ public void testCreateFileHeader_AddGitLink() throws Exception {
+ ObjectId adId = blob("a\nd\n");
+ DiffEntry ent = DiffEntry.add("FOO", adId);
+ ent.newMode = FileMode.GITLINK;
+ FileHeader fh = df.toFileHeader(ent);
+
+ String diffHeader = "diff --git a/FOO b/FOO\n" //
+ + "new file mode " + GITLINK + "\n"
+ + "index "
+ + ObjectId.zeroId().abbreviate(8).name()
+ + ".."
+ + adId.abbreviate(8).name() + "\n" //
+ + "--- /dev/null\n"//
+ + "+++ b/FOO\n";
+ assertEquals(diffHeader, RawParseUtils.decode(fh.getBuffer()));
+
+ assertEquals(1, fh.getHunks().size());
+ HunkHeader hh = fh.getHunks().get(0);
+
+ EditList el = hh.toEditList();
+ assertEquals(1, el.size());
+
+ Edit e = el.get(0);
+ assertEquals(0, e.getBeginA());
+ assertEquals(0, e.getEndA());
+ assertEquals(0, e.getBeginB());
+ assertEquals(1, e.getEndB());
+ assertEquals(Edit.Type.INSERT, e.getType());
+ }
+
+ @Test
+ public void testCreateFileHeader_DeleteGitLink() throws Exception {
+ ObjectId adId = blob("a\nd\n");
+ DiffEntry ent = DiffEntry.delete("FOO", adId);
+ ent.oldMode = FileMode.GITLINK;
+ FileHeader fh = df.toFileHeader(ent);
+
+ String diffHeader = "diff --git a/FOO b/FOO\n" //
+ + "deleted file mode " + GITLINK + "\n"
+ + "index "
+ + adId.abbreviate(8).name()
+ + ".."
+ + ObjectId.zeroId().abbreviate(8).name() + "\n" //
+ + "--- a/FOO\n"//
+ + "+++ /dev/null\n";
+ assertEquals(diffHeader, RawParseUtils.decode(fh.getBuffer()));
+
+ assertEquals(1, fh.getHunks().size());
+ HunkHeader hh = fh.getHunks().get(0);
+
+ EditList el = hh.toEditList();
+ assertEquals(1, el.size());
+
+ Edit e = el.get(0);
+ assertEquals(0, e.getBeginA());
+ assertEquals(1, e.getEndA());
+ assertEquals(0, e.getBeginB());
+ assertEquals(0, e.getEndB());
+ assertEquals(Edit.Type.DELETE, e.getType());
+ }
+
+ @Test
public void testCreateFileHeaderWithoutIndexLine() throws Exception {
DiffEntry m = DiffEntry.modify(PATH_A);
m.oldMode = FileMode.REGULAR_FILE;