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 {