[Mercurial Tests] HgAddTestCase rewritten to test hg4idea instead of hg.
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Mon, 21 Jun 2010 11:18:33 +0000 (15:18 +0400)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Mon, 21 Jun 2010 11:18:33 +0000 (15:18 +0400)
plugins/hg4idea/testSrc/org/zmlx/hg4idea/HgAddTestCase.java

index ebc58c63a807910545e3d05f1c7355b86a51d4bb..ac82ae501c62cc8fcb7c7b7748cdf9e5083935cf 100644 (file)
@@ -15,18 +15,70 @@ package org.zmlx.hg4idea;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.testng.annotations.Test;
 
+import java.io.File;
+
+/**
+ * Tests adding files to the Mercurial repository.
+ */
 public class HgAddTestCase extends AbstractHgTestCase {
 
+  private static final String AFILE = "a.txt";
+  private static final String BDIR = "b";
+  private static final String BFILE = "b.txt";
+  private static final String BFILE_PATH = BDIR + File.separator + BFILE;
+  private static final String FILE_CONTENT = "Sample file content.";
+
+  /**
+   * 1. Create a file in the file system.
+   * 2. Add the unversioned file to the VCS using the ChangeListManager.
+   * 3. Verify that the file was added to the VCS.
+   */
+  @Test
+  public void fileAddedViaChangeListShouldBeAddedToHg() throws Exception {
+    final VirtualFile vf = myTempDirTestFixture.createFile(AFILE);
+    addUnversionedFilesToChangeList(vf);
+    verifyStatus(added(AFILE));
+    checkFilesAreInList(true, vf);
+  }
+
+  /**
+   * 1. Create a file in the file system.
+   * 2. Add the file to the VCS using the native command.
+   * 4. Verify that the file is in the default change list.
+   */
   @Test
-  public void testAddFile() throws Exception {
-    createFileInCommand("a.txt", "new file content");
-    verify(runHgOnProjectRepo("status"), added("a.txt"));
+  public void fileAddedViaHgShouldBeAddedInChangeList() throws Exception {
+    final VirtualFile vf = createFileInCommand(AFILE, FILE_CONTENT);
+    checkFilesAreInList(true, vf);
   }
 
+  /**
+   * 1. Create some files and directories in the file system.
+   * 2. Add them to the VCS via the ChangeListManager.
+   * 3. Verify that they are added to the VCS.
+   */
   @Test
-  public void testAddFileInDirectory() throws Exception {
-    VirtualFile parent = createDirInCommand(myWorkingCopyDir, "com");
-    createFileInCommand(parent, "a.txt", "new file content");
-    verify(runHgOnProjectRepo("status"), added("com", "a.txt"));
+  public void filesInDirsAddedViaChangeListShouldBeAddedToHg() throws Exception {
+    final VirtualFile afile = myTempDirTestFixture.createFile(AFILE);
+    final VirtualFile bdir = myTempDirTestFixture.findOrCreateDir(BDIR);
+    final VirtualFile bfile = myTempDirTestFixture.createFile(BFILE_PATH);
+    addUnversionedFilesToChangeList(afile, bdir, bfile);
+    verifyStatus(added(AFILE), added(BFILE_PATH));
+    checkFilesAreInList(true, afile, bfile);
   }
+
+  /**
+   * 1. Create some files and directories in the file system.
+   * 2. Add them to the VCS natively.
+   * 3. Check that they were added to the default change list.
+   */
+  @Test
+  public void filesInDirsAddedViaHgShouldBeAddedInChangeList() throws Exception {
+    final VirtualFile afile = createFileInCommand(AFILE, FILE_CONTENT);
+    final VirtualFile bdir = createDirInCommand(myWorkingCopyDir, BDIR);
+    final VirtualFile bfile = createFileInCommand(bdir, BFILE, FILE_CONTENT);
+    verifyStatus(added(AFILE), added(BFILE_PATH));
+    checkFilesAreInList(true, afile, bfile);
+  }
+
 }