Migrate tests to JUnit 4.

Change-Id: If1a6a5a3807f539a99793fc30ef56bdeef727cb4
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/m2e-core-tests b/m2e-core-tests
index 2e1cf70..82a0c06 160000
--- a/m2e-core-tests
+++ b/m2e-core-tests
@@ -1 +1 @@
-Subproject commit 2e1cf70e1fce1e6158921935015af69ba8f2e46d
+Subproject commit 82a0c068b5a0032d48ef3f0a8bcf44b9e590bc7d
diff --git a/org.eclipse.m2e.binaryproject.tests/src/org/eclipse/m2e/binaryproject/tests/BinaryProjectTest.java b/org.eclipse.m2e.binaryproject.tests/src/org/eclipse/m2e/binaryproject/tests/BinaryProjectTest.java
index 8b0a054..dae7651 100644
--- a/org.eclipse.m2e.binaryproject.tests/src/org/eclipse/m2e/binaryproject/tests/BinaryProjectTest.java
+++ b/org.eclipse.m2e.binaryproject.tests/src/org/eclipse/m2e/binaryproject/tests/BinaryProjectTest.java
@@ -12,6 +12,11 @@
  *******************************************************************************/
 package org.eclipse.m2e.binaryproject.tests;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import org.eclipse.core.resources.ICommand;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
@@ -27,11 +32,13 @@
 import org.eclipse.m2e.jdt.internal.BuildPathManager;
 import org.eclipse.m2e.tests.common.AbstractMavenProjectTestCase;
 import org.eclipse.m2e.tests.common.ClasspathHelpers;
+import org.junit.Test;
 
 @SuppressWarnings({"restriction"})
 public class BinaryProjectTest extends AbstractMavenProjectTestCase {
   IProgressMonitor monitor = new NullProgressMonitor();
 
+  @Test
   public void testBasic() throws Exception {
     IProject project =
         BinaryProjectPlugin.getInstance().create("org.apache.maven", "maven-core", "3.0.4", null, monitor);
diff --git a/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/MavenBugsTest.java b/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/MavenBugsTest.java
index 9136f6e..79e2327 100644
--- a/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/MavenBugsTest.java
+++ b/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/MavenBugsTest.java
@@ -10,6 +10,8 @@
 
 package org.eclipse.m2e.core;
 
+import static org.junit.Assert.assertEquals;
+
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.nio.file.Files;
diff --git a/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/internal/project/registry/RegistryTest.java b/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/internal/project/registry/RegistryTest.java
index 5d40fb6..7d0e8a9 100644
--- a/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/internal/project/registry/RegistryTest.java
+++ b/org.eclipse.m2e.core.tests/src/org/eclipse/m2e/core/internal/project/registry/RegistryTest.java
@@ -14,6 +14,7 @@
 package org.eclipse.m2e.core.internal.project.registry;
 
 import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -69,6 +70,7 @@
     assertEquals(Collections.singleton(project.getFile("pom.xml")), registry.getDependents(parentCapability, false));
   }
 
+  @Test
   public void testMultiRefreshKeepsCapabilities() throws IOException, CoreException, InterruptedException {
     IProject dependentProject = createExisting("dependent", "resources/projects/dependency/dependent", true);
     IProject dependencyProject = createExisting("dependency", "resources/projects/dependency/dependency", true);
@@ -87,6 +89,7 @@
   }
 
   @Ignore(value = "This test doesn't manage to reproduce Bug 547172 while similar manual steps do lead to an error")
+  @Test
   public void testInvalidParent() throws IOException, CoreException, InterruptedException {
     IProject childProject = importProject("invalidParent", "resources/projects/invalidParent/child/", new ProjectImportConfiguration());
     waitForJobsToComplete(monitor);
diff --git a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractLifecycleMappingTest.java b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractLifecycleMappingTest.java
index 684982d..cd05f23 100644
--- a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractLifecycleMappingTest.java
+++ b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractLifecycleMappingTest.java
@@ -13,6 +13,8 @@
 
 package org.eclipse.m2e.tests.common;
 
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -21,6 +23,9 @@
 import java.util.List;
 import java.util.Map;
 
+import org.junit.After;
+import org.junit.Before;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
@@ -53,7 +58,8 @@
   protected IProjectConfigurationManager projectConfigurationManager;
 
   @Override
-  protected void setUp() throws Exception {
+  @Before
+  public void setUp() throws Exception {
     super.setUp();
 
     mavenProjectManager = MavenPlugin.getMavenProjectRegistry();
@@ -61,7 +67,8 @@
   }
 
   @Override
-  protected void tearDown() throws Exception {
+  @After
+  public void tearDown() throws Exception {
     projectConfigurationManager = null;
     mavenProjectManager = null;
 
diff --git a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java
index 0e811e6..d8cbfde 100644
--- a/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java
+++ b/org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java
@@ -13,6 +13,11 @@
 
 package org.eclipse.m2e.tests.common;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.fail;
+
 import java.io.File;
 import java.io.FileFilter;
 import java.io.FileInputStream;
@@ -20,7 +25,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -30,7 +34,9 @@
 import java.util.List;
 import java.util.Set;
 
-import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.TestName;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
@@ -65,11 +71,9 @@
 
 import org.eclipse.m2e.core.MavenPlugin;
 import org.eclipse.m2e.core.embedder.IMavenConfiguration;
-import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
 import org.eclipse.m2e.core.embedder.MavenModelManager;
 import org.eclipse.m2e.core.internal.IMavenConstants;
 import org.eclipse.m2e.core.internal.MavenPluginActivator;
-import org.eclipse.m2e.core.internal.embedder.AbstractRunnable;
 import org.eclipse.m2e.core.internal.embedder.MavenImpl;
 import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory;
 import org.eclipse.m2e.core.internal.preferences.MavenConfigurationImpl;
@@ -89,7 +93,7 @@
 
 
 @SuppressWarnings("restriction")
-public abstract class AbstractMavenProjectTestCase extends TestCase {
+public abstract class AbstractMavenProjectTestCase {
 
   public static final int DELETE_RETRY_COUNT = 10;
 
@@ -99,6 +103,9 @@
 
   protected IWorkspace workspace;
 
+  @Rule
+  public TestName name = new TestName();
+
   protected File repo;
 
   protected ProjectRegistryRefreshJob projectRefreshJob;
@@ -109,10 +116,9 @@
 
   private String oldUserSettingsFile;
 
-  protected void setUp() throws Exception {
-    System.out.println("TEST-SETUP: " + getName());
-
-    super.setUp();
+  @Before
+  public void setUp() throws Exception {
+    System.out.println("TEST-SETUP: " + name.getMethodName());
 
     workspace = ResourcesPlugin.getWorkspace();
     mavenConfiguration = MavenPlugin.getMavenConfiguration();
@@ -153,21 +159,17 @@
     FilexWagon.setRequestFilterPattern(null, true);
   }
 
-  protected void tearDown() throws Exception {
-    try {
-      waitForJobsToComplete();
-      WorkspaceHelpers.cleanWorkspace();
+  public void tearDown() throws Exception {
+    waitForJobsToComplete();
+    WorkspaceHelpers.cleanWorkspace();
 
-      // Restore the user settings file location
-      mavenConfiguration.setUserSettingsFile(oldUserSettingsFile);
+    // Restore the user settings file location
+    mavenConfiguration.setUserSettingsFile(oldUserSettingsFile);
 
-      projectRefreshJob.wakeUp();
-      setAutoBuilding(false);
-      setAutomaticallyUpdateConfiguration(false);
-      FilexWagon.reset();
-    } finally {
-      super.tearDown();
-    }
+    projectRefreshJob.wakeUp();
+    setAutoBuilding(false);
+    setAutomaticallyUpdateConfiguration(false);
+    FilexWagon.reset();
   }
 
   /**
@@ -602,60 +604,4 @@
         null);
   }
 
-  @Override
-  public void runTest() throws Throwable {
-    if(!requiresMavenExecutionContext()) {
-      super.runTest();
-    } else {
-      @SuppressWarnings("serial")
-      class WrappedThrowable extends RuntimeException {
-        public WrappedThrowable(Throwable ex) {
-          super(ex);
-        }
-      }
-      try {
-        MavenPlugin.getMaven().execute(new AbstractRunnable() {
-          @SuppressWarnings("synthetic-access")
-          protected void run(IMavenExecutionContext context, IProgressMonitor monitor) {
-            try {
-              AbstractMavenProjectTestCase.super.runTest();
-            } catch(Throwable ex) {
-              throw new WrappedThrowable(ex);
-            }
-          }
-        }, monitor);
-      } catch(WrappedThrowable e) {
-        throw e.getCause();
-      }
-    }
-  }
-
-  private boolean requiresMavenExecutionContext() {
-    String fName = getName();
-    if(fName != null) {
-      try {
-        Method runMethod = getClass().getMethod(fName);
-        RequireMavenExecutionContext ann = runMethod.getAnnotation(RequireMavenExecutionContext.class);
-        if(ann != null) {
-          return ann.require();
-        }
-      } catch(SecurityException ex) {
-        // fall through
-      } catch(NoSuchMethodException ex) {
-        // fall through
-      }
-    }
-
-    Class<?> clazz = getClass();
-    do {
-      RequireMavenExecutionContext ann = clazz.getAnnotation(RequireMavenExecutionContext.class);
-      if(ann != null) {
-        return ann.require();
-      }
-      clazz = clazz.getSuperclass();
-    } while(clazz != null);
-
-    return false;
-  }
-
 }