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.treewalk;
45
46 import static org.junit.Assert.assertEquals;
47 import static org.junit.Assert.assertFalse;
48 import static org.junit.Assert.assertNotNull;
49 import static org.junit.Assert.assertSame;
50 import static org.junit.Assert.assertTrue;
51
52 import org.eclipse.jgit.junit.RepositoryTestCase;
53 import org.eclipse.jgit.lib.ObjectId;
54 import org.eclipse.jgit.lib.ObjectReader;
55 import org.junit.Test;
56
57 public class EmptyTreeIteratorTest extends RepositoryTestCase {
58 @Test
59 public void testAtEOF() throws Exception {
60 final EmptyTreeIterator etp = new EmptyTreeIterator();
61 assertTrue(etp.first());
62 assertTrue(etp.eof());
63 }
64
65 @Test
66 public void testCreateSubtreeIterator() throws Exception {
67 final EmptyTreeIterator etp = new EmptyTreeIterator();
68 try (ObjectReader reader = db.newObjectReader()) {
69 final AbstractTreeIterator sub = etp.createSubtreeIterator(reader);
70 assertNotNull(sub);
71 assertTrue(sub.first());
72 assertTrue(sub.eof());
73 assertTrue(sub instanceof EmptyTreeIterator);
74 }
75 }
76
77 @Test
78 public void testEntryObjectId() throws Exception {
79 final EmptyTreeIterator etp = new EmptyTreeIterator();
80 assertSame(ObjectId.zeroId(), etp.getEntryObjectId());
81 assertNotNull(etp.idBuffer());
82 assertEquals(0, etp.idOffset());
83 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
84 }
85
86 @Test
87 public void testNextDoesNothing() throws Exception {
88 final EmptyTreeIterator etp = new EmptyTreeIterator();
89 etp.next(1);
90 assertTrue(etp.first());
91 assertTrue(etp.eof());
92 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
93
94 etp.next(1);
95 assertTrue(etp.first());
96 assertTrue(etp.eof());
97 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
98 }
99
100 @Test
101 public void testBackDoesNothing() throws Exception {
102 final EmptyTreeIterator etp = new EmptyTreeIterator();
103 etp.back(1);
104 assertTrue(etp.first());
105 assertTrue(etp.eof());
106 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
107
108 etp.back(1);
109 assertTrue(etp.first());
110 assertTrue(etp.eof());
111 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
112 }
113
114 @Test
115 public void testStopWalkCallsParent() throws Exception {
116 final boolean called[] = new boolean[1];
117 assertFalse(called[0]);
118
119 final EmptyTreeIterator parent = new EmptyTreeIterator() {
120 @Override
121 public void stopWalk() {
122 called[0] = true;
123 }
124 };
125 try (ObjectReader reader = db.newObjectReader()) {
126 parent.createSubtreeIterator(reader).stopWalk();
127 }
128 assertTrue(called[0]);
129 }
130 }