[Mercurial Tests] createRepository and cloneFrom moved to HgTestRepository.
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 10 Aug 2010 13:38:18 +0000 (17:38 +0400)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 10 Aug 2010 13:38:18 +0000 (17:38 +0400)
Made AbstractVcsTestCase.verify() public.

platform/testFramework/src/com/intellij/testFramework/AbstractVcsTestCase.java
plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgAbstractTestCase.java
plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgCollaborativeTestCase.java
plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgSingleUserTestCase.java
plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgTestRepository.java

index e85bb79361473a5ac6a05178e12f29ab048eacd5..622ee60bfa0db317fd492cc87ce76aac80f1cf61 100644 (file)
@@ -215,7 +215,7 @@ public class AbstractVcsTestCase {
     option.setValue(value);
   }
 
-  protected static void verify(final ProcessOutput runResult) {
+  public static void verify(final ProcessOutput runResult) {
     Assert.assertEquals(runResult.getStderr(), 0, runResult.getExitCode());
   }
 
index d29c536e8b59386005b2bc2884035e6bbb437f3d..6e92e76262d6b33062ac1f09e667f12967f0e29a 100644 (file)
@@ -20,8 +20,6 @@ import com.intellij.openapi.vcs.changes.VcsDirtyScopeManager;
 import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.testFramework.AbstractVcsTestCase;
-import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
-import com.intellij.testFramework.fixtures.TempDirTestFixture;
 import com.intellij.vcsUtil.VcsUtil;
 import org.jetbrains.annotations.Nullable;
 import org.testng.annotations.BeforeMethod;
@@ -66,24 +64,6 @@ public abstract class HgAbstractTestCase extends AbstractVcsTestCase {
     myTraceClient = true;
   }
 
-  /**
-   * Creates a new Mercurial repository in a temporary test directory.
-   * @return created repository
-   */
-  protected HgTestRepository createRepository() throws Exception {
-    final TempDirTestFixture dirFixture = createFixtureDir();
-    final File repo = new File(dirFixture.getTempDirPath());
-    ProcessOutput processOutput = runHg(repo, "init");
-    verify(processOutput);
-    return new HgTestRepository(this, dirFixture);
-  }
-
-  protected static TempDirTestFixture createFixtureDir() throws Exception {
-    final TempDirTestFixture fixture = IdeaTestFixtureFactory.getFixtureFactory().createTempDirTestFixture();
-    fixture.setUp();
-    return fixture;
-  }
-
   protected void enableSilentOperation(final VcsConfiguration.StandardConfirmation op) {
     setStandardConfirmation(HgVcs.VCS_NAME, op, VcsShowConfirmationOption.Value.DO_ACTION_SILENTLY);
   }
index b5c2925f804df528c243ada115b53861771fdc03..3c82f4cddf76c6e2817b4c5ca033c795d48aaa31 100644 (file)
@@ -15,9 +15,7 @@
  */
 package org.zmlx.hg4idea.test;
 
-import com.intellij.execution.process.ProcessOutput;
 import com.intellij.openapi.vcs.VcsConfiguration;
-import com.intellij.testFramework.fixtures.TempDirTestFixture;
 import org.testng.annotations.BeforeMethod;
 import org.zmlx.hg4idea.HgVcs;
 
@@ -38,8 +36,8 @@ public class HgCollaborativeTestCase extends HgAbstractTestCase {
   protected void setUp() throws Exception {
     super.setUp();
 
-    myParentRepo = createRepository();
-    myRepo = cloneFrom(myParentRepo);
+    myParentRepo = HgTestRepository.create(this);
+    myRepo = myParentRepo.cloneRepository();
 
     myProjectDir = new File(myRepo.getDirFixture().getTempDirPath());
 
@@ -51,16 +49,4 @@ public class HgCollaborativeTestCase extends HgAbstractTestCase {
     enableSilentOperation(VcsConfiguration.StandardConfirmation.REMOVE);
   }
 
-  /**
-   * Clones a repository from the given one. New repository is located in a temporary test directory.
-   * @param parent repository to clone from.
-   * @return New repository cloned from the given parent.
-   */
-  protected HgTestRepository cloneFrom(HgTestRepository parent) throws Exception {
-    final TempDirTestFixture dirFixture = createFixtureDir();
-    final ProcessOutput processOutput = runHg(null, "clone", parent.getDirFixture().getTempDirPath(), dirFixture.getTempDirPath());
-    verify(processOutput);
-    return new HgTestRepository(this, dirFixture);
-  }
-
 }
index abea09e61ca495512561a0cedb6f7ff71ebef571..f0247b2a6a91a4a312721dab9b692402883b7036 100644 (file)
@@ -35,7 +35,7 @@ public class HgSingleUserTestCase extends HgAbstractTestCase {
   protected void setUp() throws Exception {
     super.setUp();
 
-    myRepo = createRepository();
+    myRepo = HgTestRepository.create(this);
     myProjectDir = new File(myRepo.getDirFixture().getTempDirPath());
     
     initProject(myProjectDir);
index 2cf7d01b036c30dcf464eed1719b174f9e0fe022..3562eac466e99966f9f59bdcdde43e475b276bf4 100644 (file)
  */
 package org.zmlx.hg4idea.test;
 
+import com.intellij.execution.process.ProcessOutput;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.testFramework.AbstractVcsTestCase;
+import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
 import com.intellij.testFramework.fixtures.TempDirTestFixture;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -47,11 +50,49 @@ class HgTestRepository {
     myParent = parent;
   }
 
+  /**
+   * Creates a new Mercurial repository in a new temporary test directory.
+   * @param testCase reference to the test case instance.
+   * @return created repository.
+   */
+  public static HgTestRepository create(HgAbstractTestCase testCase) throws Exception {
+    final TempDirTestFixture dirFixture = createFixtureDir();
+    final File repo = new File(dirFixture.getTempDirPath());
+    final ProcessOutput processOutput = testCase.runHg(repo, "init");
+    AbstractVcsTestCase.verify(processOutput);
+    return new HgTestRepository(testCase, dirFixture);
+  }
+
+  private static TempDirTestFixture createFixtureDir() throws Exception {
+    final TempDirTestFixture fixture = IdeaTestFixtureFactory.getFixtureFactory().createTempDirTestFixture();
+    fixture.setUp();
+    return fixture;
+  }
+
+  /**
+   * Clones a repository from this one. New repository is located in a new temporary test directory.
+   * @return New repository cloned from this one.
+   */
+  HgTestRepository cloneRepository() throws Exception {
+    final TempDirTestFixture dirFixture = createFixtureDir();
+    final ProcessOutput processOutput = myTest.runHg(null, "clone", getDirFixture().getTempDirPath(), dirFixture.getTempDirPath());
+    AbstractVcsTestCase.verify(processOutput);
+    return new HgTestRepository(myTest, dirFixture);
+  }
+
   @NotNull
   TempDirTestFixture getDirFixture() {
     return myDirFixture;
   }
 
+  public VirtualFile getDir() {
+    return myDirFixture.getFile(".");
+  }
+
+  public VirtualFile createFile(String filename) {
+    return myDirFixture.createFile(filename);
+  }
+
   /**
    * Natively executes the given mercurial command.
    * @param commandWithParameters Mercurial command with parameters. E.g. ["status", "-a"]
@@ -68,15 +109,20 @@ class HgTestRepository {
     execute("commit", "-m", "Sample commit message");
   }
 
-  void update() throws IOException {
-    execute("update");
+  void merge() throws IOException {
+    execute("merge");
+  }
+
+  void pull() throws IOException {
+    execute("pull");
   }
 
   void push() throws IOException {
     execute("push");
   }
 
-  public VirtualFile getDir() {
-    return myDirFixture.getFile(".");
+  void update() throws IOException {
+    execute("update");
   }
+
 }