diff options
author | Han-Wen Nienhuys <hanwen@google.com> | 2019-08-12 19:04:07 +0200 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2019-09-11 12:59:55 +0200 |
commit | 726bcc4fdb9e4b211b872a15ba47b8a517e1b065 (patch) | |
tree | 6e03cbe33993735c6da165e62ae1e6ed855779e8 /org.eclipse.jgit.test | |
parent | 830e214805c68f5c447bca1b9db9b95c9866419c (diff) | |
download | jgit-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.java | 44 |
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"; |