1
2
3
4
5
6
7
8
9
10
11 package org.eclipse.jgit.treewalk;
12
13 import static org.junit.Assert.assertEquals;
14 import static org.junit.Assert.assertFalse;
15 import static org.junit.Assert.assertNotNull;
16 import static org.junit.Assert.assertSame;
17 import static org.junit.Assert.assertTrue;
18
19 import org.eclipse.jgit.junit.RepositoryTestCase;
20 import org.eclipse.jgit.lib.ObjectId;
21 import org.eclipse.jgit.lib.ObjectReader;
22 import org.junit.Test;
23
24 public class EmptyTreeIteratorTest extends RepositoryTestCase {
25 @Test
26 public void testAtEOF() throws Exception {
27 final EmptyTreeIterator etp = new EmptyTreeIterator();
28 assertTrue(etp.first());
29 assertTrue(etp.eof());
30 }
31
32 @Test
33 public void testCreateSubtreeIterator() throws Exception {
34 final EmptyTreeIterator etp = new EmptyTreeIterator();
35 try (ObjectReader reader = db.newObjectReader()) {
36 final AbstractTreeIterator sub = etp.createSubtreeIterator(reader);
37 assertNotNull(sub);
38 assertTrue(sub.first());
39 assertTrue(sub.eof());
40 assertTrue(sub instanceof EmptyTreeIterator);
41 }
42 }
43
44 @Test
45 public void testEntryObjectId() throws Exception {
46 final EmptyTreeIterator etp = new EmptyTreeIterator();
47 assertSame(ObjectId.zeroId(), etp.getEntryObjectId());
48 assertNotNull(etp.idBuffer());
49 assertEquals(0, etp.idOffset());
50 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
51 }
52
53 @Test
54 public void testNextDoesNothing() throws Exception {
55 final EmptyTreeIterator etp = new EmptyTreeIterator();
56 etp.next(1);
57 assertTrue(etp.first());
58 assertTrue(etp.eof());
59 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
60
61 etp.next(1);
62 assertTrue(etp.first());
63 assertTrue(etp.eof());
64 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
65 }
66
67 @Test
68 public void testBackDoesNothing() throws Exception {
69 final EmptyTreeIterator etp = new EmptyTreeIterator();
70 etp.back(1);
71 assertTrue(etp.first());
72 assertTrue(etp.eof());
73 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
74
75 etp.back(1);
76 assertTrue(etp.first());
77 assertTrue(etp.eof());
78 assertEquals(ObjectId.zeroId(), ObjectId.fromRaw(etp.idBuffer()));
79 }
80
81 @Test
82 public void testStopWalkCallsParent() throws Exception {
83 final boolean called[] = new boolean[1];
84 assertFalse(called[0]);
85
86 final EmptyTreeIterator parent = new EmptyTreeIterator() {
87 @Override
88 public void stopWalk() {
89 called[0] = true;
90 }
91 };
92 try (ObjectReader reader = db.newObjectReader()) {
93 parent.createSubtreeIterator(reader).stopWalk();
94 }
95 assertTrue(called[0]);
96 }
97 }