aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@google.com>2019-08-12 19:04:07 +0200
committerHan-Wen Nienhuys <hanwen@google.com>2019-09-11 12:59:55 +0200
commit726bcc4fdb9e4b211b872a15ba47b8a517e1b065 (patch)
tree6e03cbe33993735c6da165e62ae1e6ed855779e8 /org.eclipse.jgit.test
parent830e214805c68f5c447bca1b9db9b95c9866419c (diff)
downloadjgit-726bcc4fdb9e4b211b872a15ba47b8a517e1b065.tar.gz
jgit-726bcc4fdb9e4b211b872a15ba47b8a517e1b065.zip
reftable: add ReftableReflogReader
Change-Id: Iac2c4ac5e3aad0fa37157ed8866f1987d80268d6 Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java
index 0e33fa6e76..bd87147479 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java
@@ -66,6 +66,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.internal.storage.io.BlockSource;
@@ -76,6 +78,7 @@ import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.ReflogEntry;
import org.eclipse.jgit.lib.SymbolicRef;
+import org.hamcrest.Matchers;
import org.junit.Test;
public class ReftableTest {
@@ -523,6 +526,47 @@ public class ReftableTest {
}
@Test
+ public void reflogReader() throws IOException {
+ Ref master = ref(MASTER, 1);
+ Ref next = ref(NEXT, 2);
+
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ ReftableWriter writer = new ReftableWriter().setMinUpdateIndex(1)
+ .setMaxUpdateIndex(1).begin(buffer);
+
+ writer.writeRef(master);
+ writer.writeRef(next);
+
+ PersonIdent who1 = new PersonIdent("Log", "Ger", 1500079709, -8 * 60);
+ writer.writeLog(MASTER, 3, who1, ObjectId.zeroId(), id(1), "1");
+ PersonIdent who2 = new PersonIdent("Log", "Ger", 1500079710, -8 * 60);
+ writer.writeLog(MASTER, 2, who2, id(1), id(2), "2");
+ PersonIdent who3 = new PersonIdent("Log", "Ger", 1500079711, -8 * 60);
+ writer.writeLog(MASTER, 1, who3, id(2), id(3), "3");
+
+ writer.finish();
+ byte[] table = buffer.toByteArray();
+
+ ReentrantLock lock = new ReentrantLock();
+ ReftableReader t = read(table);
+ ReftableReflogReader rlr = new ReftableReflogReader(lock, t, MASTER);
+
+ assertEquals(rlr.getLastEntry().getWho(), who1);
+ List<PersonIdent> all = rlr.getReverseEntries().stream()
+ .map(x -> x.getWho()).collect(Collectors.toList());
+ Matchers.contains(all, who3, who2, who1);
+
+ assertEquals(rlr.getReverseEntry(1).getWho(), who2);
+
+ List<ReflogEntry> reverse2 = rlr.getReverseEntries(2);
+ Matchers.contains(reverse2, who3, who2);
+
+ List<PersonIdent> more = rlr.getReverseEntries(4).stream()
+ .map(x -> x.getWho()).collect(Collectors.toList());
+ assertEquals(all, more);
+ }
+
+ @Test
public void reflogSeek() throws IOException {
PersonIdent who = new PersonIdent("Log", "Ger", 1500079709, -8 * 60);
String msg = "test";