[git] Extend GitPlatformTest from PlatformTestCase
authorKirill Likhodedov <Kirill.Likhodedov@jetbrains.com>
Wed, 2 Sep 2015 09:01:27 +0000 (12:01 +0300)
committerKirill Likhodedov <Kirill.Likhodedov@jetbrains.com>
Wed, 2 Sep 2015 13:25:25 +0000 (16:25 +0300)
It seems there are no reasons to inherit UsefulTestCase and set up a project fixture anymore.

plugins/git4idea/tests/git4idea/branch/GitBranchWorkerTest.java
plugins/git4idea/tests/git4idea/repo/GitRepositoryReaderTest.java
plugins/git4idea/tests/git4idea/test/GitPlatformTest.java
plugins/git4idea/tests/git4idea/tests/GitChangeProviderTest.java
plugins/git4idea/tests/git4idea/tests/GitChangeProviderVersionedTest.java

index 0fffbf27559ca72649b63da8a7ea7c814039db7b..78719faddaf9ed24dbe2e306d99806d6dc368c77 100644 (file)
@@ -60,32 +60,21 @@ public class GitBranchWorkerTest extends GitPlatformTest {
   private List<GitRepository> myRepositories;
 
   public void setUp() throws Exception {
-    try {
-      super.setUp();
-    }
-    catch (Throwable t) {
-      super.tearDown();
-    }
+    super.setUp();
 
-    try {
-      cd(myProjectRoot);
-      File community = mkdir("community");
-      File contrib = mkdir("contrib");
+    cd(myProjectRoot);
+    File community = mkdir("community");
+    File contrib = mkdir("contrib");
 
-      myUltimate = createRepository(myProjectPath);
-      myCommunity = createRepository(community.getPath());
-      myContrib = createRepository(contrib.getPath());
-      myRepositories = Arrays.asList(myUltimate, myCommunity, myContrib);
+    myUltimate = createRepository(myProjectPath);
+    myCommunity = createRepository(community.getPath());
+    myContrib = createRepository(contrib.getPath());
+    myRepositories = Arrays.asList(myUltimate, myCommunity, myContrib);
 
-      cd(myProjectRoot);
-      touch(".gitignore", "community\ncontrib");
-      git("add .gitignore");
-      git("commit -m gitignore");
-    }
-    catch (Exception e) {
-      tearDown();
-      throw e;
-    }
+    cd(myProjectRoot);
+    touch(".gitignore", "community\ncontrib");
+    git("add .gitignore");
+    git("commit -m gitignore");
   }
 
   public void test_create_new_branch_without_problems() {
index 61bb548f455cb0ce9b0e55513a52f8de93418f84..cefbdb7a61920d112c5face0a2279552c07a12f3 100644 (file)
@@ -6,9 +6,9 @@ import com.intellij.openapi.util.io.FileUtilRt;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vcs.VcsTestUtil;
 import com.intellij.util.Function;
+import com.intellij.util.ThrowableRunnable;
 import com.intellij.util.containers.ContainerUtil;
 import com.intellij.util.io.ZipUtil;
-import com.intellij.util.ui.UIUtil;
 import com.intellij.vcs.log.Hash;
 import com.intellij.vcs.log.impl.HashImpl;
 import git4idea.GitBranch;
@@ -49,7 +49,7 @@ public class GitRepositoryReaderTest extends GitPlatformTest {
     });
   }
 
-  @SuppressWarnings({"UnusedParameters"})
+  @SuppressWarnings({"UnusedParameters", "JUnitTestCaseWithNonTrivialConstructors"})
   public GitRepositoryReaderTest(@NotNull String name, @NotNull File testDir) {
     myTestCaseDir = testDir;
   }
@@ -57,7 +57,12 @@ public class GitRepositoryReaderTest extends GitPlatformTest {
   @Override
   @Before
   public void setUp() throws Exception {
-    super.setUp();
+    edt(new ThrowableRunnable() {
+      @Override
+      public void run() throws Exception {
+        GitRepositoryReaderTest.super.setUp();
+      }
+    });
     myTempDir = new File(myProjectRoot.getPath(), "test");
     prepareTest(myTestCaseDir);
   }
@@ -65,18 +70,19 @@ public class GitRepositoryReaderTest extends GitPlatformTest {
   @After
   @Override
   public void tearDown() throws Exception {
-    FileUtil.delete(myTempDir);
-    UIUtil.invokeAndWaitIfNeeded(new Runnable() {
-      @Override
-      public void run() {
-        try {
+    try {
+      if (myTempDir != null) {
+        FileUtil.delete(myTempDir);
+      }
+    }
+    finally {
+      edt(new ThrowableRunnable() {
+        @Override
+        public void run() throws Throwable {
           GitRepositoryReaderTest.super.tearDown();
         }
-        catch (Exception e) {
-          throw new RuntimeException(e);
-        }
-      }
-    });
+      });
+    }
   }
 
   private void prepareTest(File testDir) throws IOException {
index 85136316894b14e7e95888cda13f63fac87d8533..09587cc7265972121418484e578158986f553f60 100644 (file)
@@ -17,16 +17,13 @@ package git4idea.test;
 
 import com.intellij.openapi.components.ServiceManager;
 import com.intellij.openapi.diagnostic.Logger;
-import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vcs.*;
 import com.intellij.openapi.vcs.changes.ChangeListManager;
 import com.intellij.openapi.vcs.changes.VcsDirtyScopeManager;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.testFramework.PlatformTestCase;
 import com.intellij.testFramework.TestLoggerFactory;
-import com.intellij.testFramework.UsefulTestCase;
-import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
-import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
 import com.intellij.testFramework.vcs.AbstractVcsTestCase;
 import com.intellij.util.ArrayUtil;
 import com.intellij.util.ObjectUtils;
@@ -43,15 +40,10 @@ import org.jetbrains.annotations.NotNull;
 
 import java.util.*;
 
-public abstract class GitPlatformTest extends UsefulTestCase {
-
-  static {
-    Logger.setFactory(TestLoggerFactory.class);
-  }
+public abstract class GitPlatformTest extends PlatformTestCase {
 
   protected static final Logger LOG = Logger.getInstance(GitPlatformTest.class);
 
-  protected Project myProject;
   protected VirtualFile myProjectRoot;
   protected String myProjectPath;
   protected GitRepositoryManager myGitRepositoryManager;
@@ -63,7 +55,6 @@ public abstract class GitPlatformTest extends UsefulTestCase {
   protected TestDialogManager myDialogManager;
   protected TestVcsNotifier myVcsNotifier;
 
-  private IdeaProjectTestFixture myProjectFixture;
   private String myTestStartedIndicator;
 
   @Override
@@ -71,40 +62,24 @@ public abstract class GitPlatformTest extends UsefulTestCase {
     super.setUp();
     enableDebugLogging();
 
-    try {
-      myProjectFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getTestName(true)).getFixture();
-      myProjectFixture.setUp();
-    }
-    catch (Exception e) {
-      super.tearDown();
-      throw e;
-    }
-
-    try {
-      myProject = myProjectFixture.getProject();
-      myProjectRoot = myProject.getBaseDir();
-      myProjectPath = myProjectRoot.getPath();
+    myProjectRoot = myProject.getBaseDir();
+    myProjectPath = myProjectRoot.getPath();
 
-      myGitSettings = GitVcsSettings.getInstance(myProject);
-      myGitSettings.getAppSettings().setPathToGit(GitExecutor.PathHolder.GIT_EXECUTABLE);
+    myGitSettings = GitVcsSettings.getInstance(myProject);
+    myGitSettings.getAppSettings().setPathToGit(GitExecutor.PathHolder.GIT_EXECUTABLE);
 
-      myDialogManager = (TestDialogManager)ServiceManager.getService(DialogManager.class);
-      myVcsNotifier = (TestVcsNotifier)ServiceManager.getService(myProject, VcsNotifier.class);
+    myDialogManager = (TestDialogManager)ServiceManager.getService(DialogManager.class);
+    myVcsNotifier = (TestVcsNotifier)ServiceManager.getService(myProject, VcsNotifier.class);
 
-      myGitRepositoryManager = GitUtil.getRepositoryManager(myProject);
-      myPlatformFacade = ServiceManager.getService(myProject, GitPlatformFacade.class);
-      myGit = ServiceManager.getService(myProject, Git.class);
-      myVcs = ObjectUtils.assertNotNull(GitVcs.getInstance(myProject));
-      myVcs.doActivate();
+    myGitRepositoryManager = GitUtil.getRepositoryManager(myProject);
+    myPlatformFacade = ServiceManager.getService(myProject, GitPlatformFacade.class);
+    myGit = ServiceManager.getService(myProject, Git.class);
+    myVcs = ObjectUtils.assertNotNull(GitVcs.getInstance(myProject));
+    myVcs.doActivate();
 
-      GitTestUtil.assumeSupportedGitVersion(myVcs);
-      addSilently();
-      removeSilently();
-    }
-    catch (Exception e) {
-      tearDown();
-      throw e;
-    }
+    GitTestUtil.assumeSupportedGitVersion(myVcs);
+    addSilently();
+    removeSilently();
   }
 
   @Override
@@ -127,18 +102,15 @@ public abstract class GitPlatformTest extends UsefulTestCase {
       if (myVcsNotifier != null) {
         myVcsNotifier.cleanup();
       }
-      if (myProjectFixture != null) {
-        myProjectFixture.tearDown();
-      }
     }
     finally {
       try {
-        String tempTestIndicator = myTestStartedIndicator;
-        clearFields(this);
-        myTestStartedIndicator = tempTestIndicator;
+        super.tearDown();
       }
       finally {
-        super.tearDown();
+        if (myAssertionsInTestDetected) {
+          TestLoggerFactory.dumpLogToStdout(myTestStartedIndicator);
+        }
       }
     }
   }
@@ -158,19 +130,6 @@ public abstract class GitPlatformTest extends UsefulTestCase {
     return Collections.emptyList();
   }
 
-  @Override
-  protected void defaultRunBare() throws Throwable {
-    try {
-      super.defaultRunBare();
-    }
-    catch (Throwable throwable) {
-      if (myTestStartedIndicator != null) {
-        TestLoggerFactory.dumpLogToStdout(myTestStartedIndicator);
-      }
-      throw throwable;
-    }
-  }
-
   @NotNull
   private String createTestStartedIndicator() {
     return "Starting " + getClass().getName() + "." + getTestName(false) + Math.random();
index 8ea985d18e13c196a3d0dc8524c430b3f8319468..a8c99839afcceac91eb0961009dabfc401e97524 100644 (file)
@@ -234,7 +234,7 @@ public abstract class GitChangeProviderTest extends GitSingleRepoTest {
     dirty(file);
   }
 
-  protected void move(VirtualFile file, VirtualFile newParent) {
+  protected void moveFile(VirtualFile file, VirtualFile newParent) {
     dirty(file);
     moveFileInCommand(myProject, file, newParent);
     dirty(file);
@@ -247,7 +247,7 @@ public abstract class GitChangeProviderTest extends GitSingleRepoTest {
     return newFile;
   }
 
-  protected void delete(VirtualFile file) {
+  protected void deleteFile(VirtualFile file) {
     dirty(file);
     deleteFileInCommand(myProject, file);
   }
index 35994d33b159f00a1df421439a34b893f8b0b6ff..30d32cf263a79e2b883bbf086963c06adacd2dd4 100644 (file)
@@ -52,7 +52,7 @@ public class GitChangeProviderVersionedTest extends GitChangeProviderTest {
 
   @Test
   public void testDeleteFile() throws Exception {
-    delete(atxt);
+    deleteFile(atxt);
     assertChanges(atxt, DELETED);
   }
 
@@ -85,7 +85,7 @@ public class GitChangeProviderVersionedTest extends GitChangeProviderTest {
     // This is not consistent though.
     final VirtualFile dir= myProjectRoot.findChild("dir");
     final VirtualFile file = create(dir, "new.txt");
-    move(file, myRootDir);
+    moveFile(file, myRootDir);
     assertChanges(file, ADDED);
   }
 
@@ -93,7 +93,7 @@ public class GitChangeProviderVersionedTest extends GitChangeProviderTest {
   public void testSimultaneousOperationsOnMultipleFiles() throws Exception {
     edit(atxt, "new afile content");
     edit(dir_ctxt, "new cfile content");
-    delete(subdir_dtxt);
+    deleteFile(subdir_dtxt);
     VirtualFile newfile = create(myRootDir, "newfile.txt");
     add();