Search in sources :

Example 1 with Patch

use of org.eclipse.jgit.patch.Patch in project gitiles by GerritCodeReview.

the class DiffServletTest method diffFileOneParentText.

@Test
public void diffFileOneParentText() throws Exception {
    String contents1 = "foo\n";
    String contents2 = "foo\ncontents\n";
    RevCommit c1 = repo.update("master", repo.commit().add("foo", contents1));
    RevCommit c2 = repo.update("master", repo.commit().parent(c1).add("foo", contents2));
    FakeHttpServletResponse res = buildText("/repo/+diff/" + c2.name() + "^!/foo");
    Patch p = parsePatch(res.getActualBody());
    FileHeader f = getOnlyElement(p.getFiles());
    assertThat(f.getChangeType()).isEqualTo(ChangeType.MODIFY);
    assertThat(f.getPath(Side.OLD)).isEqualTo("foo");
    assertThat(f.getPath(Side.NEW)).isEqualTo("foo");
    RawText rt2 = new RawText(contents2.getBytes(UTF_8));
    Edit e = getOnlyElement(getOnlyElement(f.getHunks()).toEditList());
    assertThat(e.getType()).isEqualTo(Type.INSERT);
    assertThat(rt2.getString(e.getBeginB(), e.getEndB(), false)).isEqualTo("contents\n");
}
Also used : Edit(org.eclipse.jgit.diff.Edit) RawText(org.eclipse.jgit.diff.RawText) Patch(org.eclipse.jgit.patch.Patch) FileHeader(org.eclipse.jgit.patch.FileHeader) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 2 with Patch

use of org.eclipse.jgit.patch.Patch in project gitiles by GerritCodeReview.

the class DiffServletTest method diffFileNoParentsText.

@Test
public void diffFileNoParentsText() throws Exception {
    String contents = "foo\ncontents\n";
    RevCommit c = repo.update("master", repo.commit().add("foo", contents));
    FakeHttpServletResponse res = buildText("/repo/+diff/" + c.name() + "^!/foo");
    Patch p = parsePatch(res.getActualBody());
    FileHeader f = getOnlyElement(p.getFiles());
    assertThat(f.getChangeType()).isEqualTo(ChangeType.ADD);
    assertThat(f.getPath(Side.OLD)).isEqualTo(DiffEntry.DEV_NULL);
    assertThat(f.getPath(Side.NEW)).isEqualTo("foo");
    RawText rt = new RawText(contents.getBytes(UTF_8));
    Edit e = getOnlyElement(getOnlyElement(f.getHunks()).toEditList());
    assertThat(e.getType()).isEqualTo(Type.INSERT);
    assertThat(rt.getString(e.getBeginB(), e.getEndB(), false)).isEqualTo(contents);
}
Also used : Edit(org.eclipse.jgit.diff.Edit) RawText(org.eclipse.jgit.diff.RawText) Patch(org.eclipse.jgit.patch.Patch) FileHeader(org.eclipse.jgit.patch.FileHeader) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 3 with Patch

use of org.eclipse.jgit.patch.Patch in project gitiles by GerritCodeReview.

the class DiffServletTest method parsePatch.

private static Patch parsePatch(byte[] enc) {
    byte[] buf = BaseEncoding.base64().decode(new String(enc, UTF_8));
    Patch p = new Patch();
    p.parse(buf, 0, buf.length);
    assertThat(p.getErrors()).isEqualTo(ImmutableList.of());
    return p;
}
Also used : Patch(org.eclipse.jgit.patch.Patch)

Example 4 with Patch

use of org.eclipse.jgit.patch.Patch in project gitiles by GerritCodeReview.

the class DiffServletTest method diffDirectoryText.

@Test
public void diffDirectoryText() throws Exception {
    String contents = "contents\n";
    RevCommit c = repo.update("master", repo.commit().add("dir/foo", contents).add("dir/bar", contents).add("baz", contents));
    FakeHttpServletResponse res = buildText("/repo/+diff/" + c.name() + "^!/dir");
    Patch p = parsePatch(res.getActualBody());
    assertThat(p.getFiles().size()).isEqualTo(2);
    assertThat(p.getFiles().get(0).getPath(Side.NEW)).isEqualTo("dir/bar");
    assertThat(p.getFiles().get(1).getPath(Side.NEW)).isEqualTo("dir/foo");
}
Also used : Patch(org.eclipse.jgit.patch.Patch) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Aggregations

Patch (org.eclipse.jgit.patch.Patch)4 RevCommit (org.eclipse.jgit.revwalk.RevCommit)3 Test (org.junit.Test)3 Edit (org.eclipse.jgit.diff.Edit)2 RawText (org.eclipse.jgit.diff.RawText)2 FileHeader (org.eclipse.jgit.patch.FileHeader)2