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
44 package org.eclipse.jgit.dircache;
45
46 import static org.junit.Assert.assertEquals;
47 import static org.junit.Assert.assertNotNull;
48 import static org.junit.Assert.assertSame;
49
50 import org.eclipse.jgit.junit.RepositoryTestCase;
51 import org.eclipse.jgit.lib.FileMode;
52 import org.junit.Test;
53
54 public class DirCacheFindTest extends RepositoryTestCase {
55 @Test
56 public void testEntriesWithin() throws Exception {
57 final DirCache dc = db.readDirCache();
58
59 final String[] paths = { "a-", "a/b", "a/c", "a/d", "a0b" };
60 final DirCacheEntry[] ents = new DirCacheEntry[paths.length];
61 for (int i = 0; i < paths.length; i++) {
62 ents[i] = new DirCacheEntry(paths[i]);
63 ents[i].setFileMode(FileMode.REGULAR_FILE);
64 }
65 final int aFirst = 1;
66 final int aLast = 3;
67
68 final DirCacheBuilder b = dc.builder();
69 for (DirCacheEntry ent : ents) {
70 b.add(ent);
71 }
72 b.finish();
73
74 assertEquals(paths.length, dc.getEntryCount());
75 for (int i = 0; i < ents.length; i++)
76 assertSame(ents[i], dc.getEntry(i));
77
78 {
79 final DirCacheEntry[] aContents = dc.getEntriesWithin("a");
80 assertNotNull(aContents);
81 assertEquals(aLast - aFirst + 1, aContents.length);
82 for (int i = aFirst, j = 0; i <= aLast; i++, j++)
83 assertSame(ents[i], aContents[j]);
84 }
85 {
86 final DirCacheEntry[] aContents = dc.getEntriesWithin("a/");
87 assertNotNull(aContents);
88 assertEquals(aLast - aFirst + 1, aContents.length);
89 for (int i = aFirst, j = 0; i <= aLast; i++, j++)
90 assertSame(ents[i], aContents[j]);
91 }
92 {
93 final DirCacheEntry[] aContents = dc.getEntriesWithin("");
94 assertNotNull(aContents);
95 assertEquals(ents.length, aContents.length);
96 for (int i = 0; i < ents.length; i++)
97 assertSame(ents[i], aContents[i]);
98 }
99
100 assertNotNull(dc.getEntriesWithin("a-"));
101 assertEquals(0, dc.getEntriesWithin("a-").length);
102
103 assertNotNull(dc.getEntriesWithin("a0b"));
104 assertEquals(0, dc.getEntriesWithin("a0b-").length);
105
106 assertNotNull(dc.getEntriesWithin("zoo"));
107 assertEquals(0, dc.getEntriesWithin("zoo-").length);
108 }
109 }