carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runners/AllTests.java
changeset 1 82d1d1de1a01
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runners/AllTests.java	Wed Mar 18 17:21:00 2009 -0500
@@ -0,0 +1,42 @@
+package org.junit.runners;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import junit.framework.Test;
+import org.junit.internal.runners.OldTestClassRunner;
+
+/** Runner for use with JUnit 3.8.x-style AllTests classes
+ * (those that only implement a static <code>suite()</code>
+ * method). For example:
+ * <pre>
+ * &#064;RunWith(AllTests.class)
+ * public class ProductTests {
+ *    public static junit.framework.Test suite() {
+ *       ...
+ *    }
+ * }
+ * </pre>
+ */
+public class AllTests extends OldTestClassRunner {
+	@SuppressWarnings("unchecked")
+	public AllTests(Class<?> klass) throws Throwable {
+		super(testFromSuiteMethod(klass));
+	}
+
+	public static Test testFromSuiteMethod(Class<?> klass) throws Throwable {
+		Method suiteMethod= null;
+		Test suite= null;
+		try {
+			suiteMethod= klass.getMethod("suite");
+			if (! Modifier.isStatic(suiteMethod.getModifiers())) {
+				throw new Exception(klass.getName() + ".suite() must be static");
+			}
+			suite= (Test) suiteMethod.invoke(null); // static method
+		} catch (InvocationTargetException e) {
+			throw e.getCause();
+		}
+		return suite;
+	}
+}