Mercurial > hg > mercurial
changeset 300:fa88221586c9
Add test on parents
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 08 Sep 2011 13:36:01 +0400 |
parents | e9e7d9fcf57d |
children | 7b6ea35e1470 844986ea478d |
files | mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommandTest.java |
diffstat | 1 files changed, 43 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommandTest.java Thu Sep 08 12:56:56 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/LogCommandTest.java Thu Sep 08 13:36:01 2011 +0400 @@ -26,7 +26,9 @@ import java.io.File; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Test public class LogCommandTest extends BaseCommandTestCase { @@ -128,6 +130,47 @@ } + public void log_results_should_have_parents() throws Exception { + setRepository("mercurial-tests/testData/rep2", true); + List<ChangeSet> csets = runLog("e0ad3ddde5aa", "df04faa7575a"); + for (ChangeSet cset : csets) { + assertFalse(cset.getParents().isEmpty()); + } + + Map<String, ChangeSet> csetMap = createChangeSetMap(csets); + + //see testData/README + checkParents(csetMap.get("e0ad3ddde5aa"), "0000000000000000000000000000000000000000"); + checkParents(csetMap.get("a3d15477d297"), "e0ad3ddde5aa"); + checkParents(csetMap.get("db8a04d262f3"), "e0ad3ddde5aa"); + checkParents(csetMap.get("2538c02bafeb"), "db8a04d262f3"); + checkParents(csetMap.get("6eeb8974fe67"), "a3d15477d297", "2538c02bafeb"); + checkParents(csetMap.get("b4937926e2e3"), "6eeb8974fe67"); + checkParents(csetMap.get("6066b677d026"), "b4937926e2e3"); + checkParents(csetMap.get("d6eaab231902"), "6eeb8974fe67"); + checkParents(csetMap.get("b6e2d176fe8e"), "6066b677d026", "d6eaab231902"); + } + + + private Map<String, ChangeSet> createChangeSetMap(@NotNull List<ChangeSet> csets) { + Map<String, ChangeSet> result = new HashMap<String, ChangeSet>(); + for (ChangeSet cset : csets) { + result.put(cset.getId(), cset); + } + return result; + } + + + private void checkParents(@NotNull final ChangeSet cset, String... parents) { + assertEquals(parents.length, cset.getParents().size()); + int i = 0; + for (ChangeSetRevision parent : cset.getParents()) { + assertEquals(parents[i], parent.getId()); + i++; + } + } + + private List<ChangeSet> runLog(final String fromId, final String toId) throws IOException, VcsException { return runCommand(new CommandExecutor<List<ChangeSet>>() { public List<ChangeSet> execute(@NotNull final Settings settings, @NotNull File workingDir) throws VcsException {