1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package org.eclipse.jgit.diff;
44
45 import static org.junit.Assert.assertEquals;
46
47 import java.io.File;
48
49 import org.eclipse.jgit.api.Git;
50 import org.eclipse.jgit.dircache.DirCacheIterator;
51 import org.eclipse.jgit.junit.RepositoryTestCase;
52 import org.eclipse.jgit.treewalk.FileTreeIterator;
53 import org.eclipse.jgit.treewalk.filter.PathFilter;
54 import org.junit.Test;
55
56 public class PatchIdDiffFormatterTest extends RepositoryTestCase {
57
58 @Test
59 public void testDiff() throws Exception {
60 write(new File(db.getDirectory().getParent(), "test.txt"), "test");
61 File folder = new File(db.getDirectory().getParent(), "folder");
62 folder.mkdir();
63 write(new File(folder, "folder.txt"), "folder");
64 try (Git git = new Git(db);
65 PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
66 git.add().addFilepattern(".").call();
67 git.commit().setMessage("Initial commit").call();
68 write(new File(folder, "folder.txt"), "folder change");
69
70 df.setRepository(db);
71 df.setPathFilter(PathFilter.create("folder"));
72 DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
73 FileTreeIterator newTree = new FileTreeIterator(db);
74 df.format(oldTree, newTree);
75 df.flush();
76
77 assertEquals("1ff64e0f9333e9b81967c3e8d7a81362b14d5441", df
78 .getCalulatedPatchId().name());
79 }
80 }
81
82 @Test
83 public void testSameDiff() throws Exception {
84 write(new File(db.getDirectory().getParent(), "test.txt"), "test");
85 File folder = new File(db.getDirectory().getParent(), "folder");
86 folder.mkdir();
87 write(new File(folder, "folder.txt"), "\n\n\n\nfolder");
88 try (Git git = new Git(db)) {
89 git.add().addFilepattern(".").call();
90 git.commit().setMessage("Initial commit").call();
91 write(new File(folder, "folder.txt"), "\n\n\n\nfolder change");
92
93 try (PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
94 df.setRepository(db);
95 df.setPathFilter(PathFilter.create("folder"));
96 DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
97 FileTreeIterator newTree = new FileTreeIterator(db);
98 df.format(oldTree, newTree);
99 df.flush();
100
101 assertEquals("08fca5ac531383eb1da8bf6b6f7cf44411281407", df
102 .getCalulatedPatchId().name());
103 }
104
105 write(new File(folder, "folder.txt"), "a\n\n\n\nfolder");
106 git.add().addFilepattern(".").call();
107 git.commit().setMessage("Initial commit").call();
108 write(new File(folder, "folder.txt"), "a\n\n\n\nfolder change");
109
110 try (PatchIdDiffFormatter df = new PatchIdDiffFormatter()) {
111 df.setRepository(db);
112 df.setPathFilter(PathFilter.create("folder"));
113 DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache());
114 FileTreeIterator newTree = new FileTreeIterator(db);
115 df.format(oldTree, newTree);
116 df.flush();
117
118 assertEquals("08fca5ac531383eb1da8bf6b6f7cf44411281407", df
119 .getCalulatedPatchId().name());
120 }
121 }
122 }
123
124 }