Mercurial > hg4j
diff test/org/tmatesoft/hg/test/TestHistory.java @ 507:a6435c1a42d0
Test for HgChangesetTreeHandler - make sure nothing is broken prior to adding --follow support
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 12 Dec 2012 14:17:12 +0100 |
parents | 3ca4ae7bdd38 |
children | ca5202afea90 |
line wrap: on
line diff
--- a/test/org/tmatesoft/hg/test/TestHistory.java Fri Nov 30 22:52:39 2012 +0100 +++ b/test/org/tmatesoft/hg/test/TestHistory.java Wed Dec 12 14:17:12 2012 +0100 @@ -29,14 +29,18 @@ import org.junit.Rule; import org.junit.Test; +import org.tmatesoft.hg.core.HgCallbackTargetException; import org.tmatesoft.hg.core.HgChangeset; import org.tmatesoft.hg.core.HgChangesetHandler; +import org.tmatesoft.hg.core.HgChangesetTreeHandler; import org.tmatesoft.hg.core.HgFileRevision; import org.tmatesoft.hg.core.HgLogCommand; import org.tmatesoft.hg.core.HgLogCommand.CollectHandler; +import org.tmatesoft.hg.core.Nodeid; import org.tmatesoft.hg.repo.HgLookup; import org.tmatesoft.hg.repo.HgRepository; import org.tmatesoft.hg.test.LogOutputParser.Record; +import org.tmatesoft.hg.util.Pair; import org.tmatesoft.hg.util.Path; @@ -118,6 +122,39 @@ }); report(what, sorted, false); } + + @Test + public void testChangesetTree() throws Exception { + repo = Configuration.get().find("branches-1"); + final String fname = "file1"; + assertTrue("[sanity]", repo.getFileNode(fname).exists()); + eh.run("hg", "log", "--debug", fname, "--cwd", repo.getLocation()); + + final LinkedList<HgChangeset> cmdResult = new LinkedList<HgChangeset>(); + new HgLogCommand(repo).file(fname, false).execute(new HgChangesetTreeHandler() { + + public void treeElement(TreeElement entry) throws HgCallbackTargetException { + // check consistency + Nodeid cset = entry.changeset().getNodeid(); + errorCollector.assertEquals(entry.changesetRevision(), cset); + Pair<HgChangeset, HgChangeset> parents_a = entry.parents(); + Pair<Nodeid, Nodeid> parents_b = entry.parentRevisions(); + if (parents_b.first().isNull()) { + errorCollector.assertTrue(parents_a.first() == null); + } else { + errorCollector.assertEquals(parents_b.first(), parents_a.first().getNodeid()); + } + if (parents_b.second().isNull()) { + errorCollector.assertTrue(parents_a.second() == null); + } else { + errorCollector.assertEquals(parents_b.second(), parents_a.second().getNodeid()); + } + // + cmdResult.add(entry.changeset()); + } + }); + report("execute with HgChangesetTreeHandler", cmdResult, true); + } private void report(String what, List<HgChangeset> r, boolean reverseConsoleResult) { final List<Record> consoleResult = changelogParser.getResult();