[P-unit-devel] SF.net SVN: p-unit: [76] trunk/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-05-14 20:48:08
|
Revision: 76
http://p-unit.svn.sourceforge.net/p-unit/?rev=76&view=rev
Author: zhanghuangzhu
Date: 2007-05-14 13:48:10 -0700 (Mon, 14 May 2007)
Log Message:
-----------
Andrew Zhang: refactored test structure.
Modified Paths:
--------------
trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
trunk/punit/src/org/punit/builder/TestMethodBuilder.java
trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java
trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
Added Paths:
-----------
trunk/punit/src/org/punit/runner/PUnitRunner.java
trunk/punit.test/src/tests/api/org/punit/all/PUnitAllTests.java
trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterface1.java
trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterfaceImpl1.java
Removed Paths:
-------------
trunk/punit/src/org/punit/type/Version.java
trunk/punit/src/org/punit/type/VersionCompetitive.java
Modified: trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit/src/org/punit/builder/PUnitAbstractTestMethodBuilder.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -7,49 +7,66 @@
import org.punit.util.*;
public abstract class PUnitAbstractTestMethodBuilder implements
- TestMethodBuilder {
+ TestMethodBuilder {
+ private HashSet _testMethodNames = new HashSet();
+
public Object[] buildTestMethods(Class testClass) {
- Method[] methods = testClass.getDeclaredMethods();
- Collection testMethods;
- if (isAlphabetical(testClass)) {
- testMethods = new TreeSet(new AlphabeticalMethodNameComparator());
- } else {
- testMethods = new ArrayList();
- }
- for (int i = 0; i < methods.length; ++i) {
- Method method = methods[i];
- if (isTestMethod(method)) {
- testMethods.add(method);
- }
- }
- return testMethods.toArray();
- }
+ Method[] methods = testClass.getDeclaredMethods();
+ Collection testMethods;
+ if (isAlphabetical(testClass)) {
+ testMethods = new TreeSet(new AlphabeticalMethodNameComparator());
+ } else {
+ testMethods = new ArrayList();
+ }
+ for (int i = 0; i < methods.length; ++i) {
+ Method method = methods[i];
+ if (isTestMethod(method)) {
+ testMethods.add(method);
+ }
+ }
+ return testMethods.toArray();
+ }
- protected boolean isTestMethod(Method method) {
- return isModifierValid(method) && isNameValid(method) && isParamValid(method);
- }
-
- protected boolean isModifierValid(Method method) {
- return ReflectionUtil.isPublic(method) && !ReflectionUtil.isStatic(method);
- }
-
- protected boolean isNameValid(Method method) {
- return method.getName().startsWith("test"); //$NON-NLS-1$
- }
-
- protected abstract boolean isParamValid(Method method);
+ protected boolean isTestMethod(Method method) {
+ return isModifierValid(method) && isNameValid(method)
+ && isParamValid(method);
+ }
- private boolean isAlphabetical(Class testClass) {
- return Alphabetical.class.isAssignableFrom(testClass);
- }
+ protected boolean isModifierValid(Method method) {
+ return ReflectionUtil.isPublic(method)
+ && !ReflectionUtil.isStatic(method);
+ }
- private static class AlphabeticalMethodNameComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- Method m1 = (Method) o1;
- Method m2 = (Method) o2;
- return m1.getName().compareTo(m2.getName());
- }
- }
+ protected boolean isNameValid(Method method) {
+ String name = method.getName();
+ return name.startsWith("test") || _testMethodNames.contains(name); //$NON-NLS-1$
+ }
+ protected abstract boolean isParamValid(Method method);
+
+ private boolean isAlphabetical(Class testClass) {
+ return Alphabetical.class.isAssignableFrom(testClass);
+ }
+
+ private static class AlphabeticalMethodNameComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ Method m1 = (Method) o1;
+ Method m2 = (Method) o2;
+ return m1.getName().compareTo(m2.getName());
+ }
+ }
+
+ public void addTestInterfaces(Class[] classes) {
+ for (int i = 0; i < classes.length; ++i) {
+ addTestInterface(classes[i]);
+ }
+ }
+
+ private void addTestInterface(Class testInterface) {
+ Method[] methods = testInterface.getDeclaredMethods();
+ for (int i = 0; i < methods.length; ++i) {
+ _testMethodNames.add(methods[i].getName());
+ }
+ }
}
Modified: trunk/punit/src/org/punit/builder/TestMethodBuilder.java
===================================================================
--- trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit/src/org/punit/builder/TestMethodBuilder.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -1,5 +1,6 @@
package org.punit.builder;
+
public interface TestMethodBuilder {
/**
* Builds the test methods from the test class. Returns a list of methods.
@@ -10,4 +11,6 @@
* @return
*/
public Object[] buildTestMethods(Class testClass);
+
+ public void addTestInterfaces(Class[] interfaces);
}
Modified: trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit/src/org/punit/runner/PUnitAbstractRunner.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -191,4 +191,8 @@
return _fileLogger;
}
+ public void addTestInterfaces(Class[] interfaces) {
+ _testMethodBuilder.addTestInterfaces(interfaces);
+ }
+
}
Added: trunk/punit/src/org/punit/runner/PUnitRunner.java
===================================================================
--- trunk/punit/src/org/punit/runner/PUnitRunner.java (rev 0)
+++ trunk/punit/src/org/punit/runner/PUnitRunner.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -0,0 +1,24 @@
+package org.punit.runner;
+
+public class PUnitRunner {
+
+ private PUnitRunner() {
+
+ }
+
+ public static void runSolo(Class clazz) {
+ new PUnitSoloRunner().run(clazz);
+ }
+
+ public static void runConcurrent(Class clazz) {
+ new PUnitConcurrentRunner().run(clazz);
+ }
+
+ public static void runSoloParameterized(Class clazz) {
+ new PUnitSoloParameterizableRunner().run(clazz);
+ }
+
+ public static void runConcurrentParameterized(Class clazz) {
+ new PUnitConcurrentParameterizableRunner().run(clazz);
+ }
+}
Deleted: trunk/punit/src/org/punit/type/Version.java
===================================================================
--- trunk/punit/src/org/punit/type/Version.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit/src/org/punit/type/Version.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -1,21 +0,0 @@
-package org.punit.type;
-
-public class Version {
-
- private String _resourcePath;
-
- private String _versionName;
-
- public Version(String path, String name) {
- _resourcePath = path;
- _versionName = name;
- }
-
- public String resourcePath() {
- return _resourcePath;
- }
-
- public String versionName() {
- return _versionName;
- }
-}
Deleted: trunk/punit/src/org/punit/type/VersionCompetitive.java
===================================================================
--- trunk/punit/src/org/punit/type/VersionCompetitive.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit/src/org/punit/type/VersionCompetitive.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -1,5 +0,0 @@
-package org.punit.type;
-
-public interface VersionCompetitive {
- public Version[] versions();
-}
Modified: trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit.test/src/extension/tests/samples/PUnitTestSuiteSample.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -10,10 +10,12 @@
public static void main(String[] args) {
TestUtil.runUnitTest = false;
- Runner[] runners = new Runner[] { new PUnitSoloRunner(),
+ Runner[] runners = new Runner[] {
+ new PUnitSoloRunner(),
new PUnitConcurrentRunner(),
new PUnitSoloParameterizableRunner(),
- new PUnitConcurrentParameterizableRunner() };
+ new PUnitConcurrentParameterizableRunner()
+ };
for(int i = 0; i < runners.length; ++i) {
runners[i].addPUnitEventListener(new OverviewImageReporter());
runners[i].run(TestSuiteClass.class);
Modified: trunk/punit.test/src/tests/api/org/punit/all/AllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-14 17:04:49 UTC (rev 75)
+++ trunk/punit.test/src/tests/api/org/punit/all/AllTests.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -9,23 +9,34 @@
import tests.api.org.punit.watcher.*;
public class AllTests {
+
public static Test suite() {
TestSuite suite = new TestSuite("Test for tests.api.org.punit"); //$NON-NLS-1$
- //$JUnit-BEGIN$
- suite.addTestSuite(ConcurrentExceptionTest.class);
- suite.addTestSuite(LoggerUtilTest.class);
- suite.addTestSuite(MemoryWatcherTest.class);
- suite.addTestSuite(PUnitConcurrentParameterizableRunnerTest.class);
- suite.addTestSuite(PUnitConcurrentRunnerTest.class);
- suite.addTestSuite(PUnitLoggerTest.class);
- suite.addTestSuite(PUnitParameterizableTestMethodBuilderTest.class);
- suite.addTestSuite(PUnitSoloParameterizableRunnerTest.class);
- suite.addTestSuite(PUnitSoloRunnerTest.class);
- suite.addTestSuite(PUnitTestMethodBuilderTest.class);
- suite.addTestSuite(PUnitTestSuiteBuilderTest.class);
- suite.addTestSuite(ReflectionUtilTest.class);
- suite.addTestSuite(TimeWatcherTest.class);
- //$JUnit-END$
+ // $JUnit-BEGIN$
+ Class[] testCases = testCases();
+ for (int i = 0; i < testCases.length; ++i) {
+ suite.addTestSuite(testCases[i]);
+ }
+ // $JUnit-END$
return suite;
}
+
+ public static Class[] testCases() {
+ return new Class[] {
+ ConcurrentExceptionTest.class,
+ LoggerUtilTest.class,
+ MemoryWatcherTest.class,
+ PUnitAbstractTestMethodBuilderTest.class,
+ PUnitConcurrentParameterizableRunnerTest.class,
+ PUnitConcurrentRunnerTest.class,
+ PUnitLoggerTest.class,
+ PUnitParameterizableTestMethodBuilderTest.class,
+ PUnitSoloParameterizableRunnerTest.class,
+ PUnitSoloRunnerTest.class,
+ PUnitTestMethodBuilderTest.class,
+ PUnitTestSuiteBuilderTest.class,
+ ReflectionUtilTest.class,
+ TimeWatcherTest.class,
+ };
+ }
}
Added: trunk/punit.test/src/tests/api/org/punit/all/PUnitAllTests.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/all/PUnitAllTests.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/all/PUnitAllTests.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -0,0 +1,16 @@
+package tests.api.org.punit.all;
+
+import org.punit.runner.*;
+import org.punit.type.*;
+
+public class PUnitAllTests implements TestSuite {
+
+ public static void main(String[] args) {
+ new PUnitSoloRunner().run(PUnitAllTests.class);
+ }
+
+ public Class[] suite() {
+ return AllTests.testCases();
+ }
+
+}
Added: trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/builder/PUnitAbstractTestMethodBuilderTest.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -0,0 +1,31 @@
+package tests.api.org.punit.builder;
+
+import java.lang.reflect.*;
+
+import junit.framework.*;
+
+import org.punit.builder.*;
+
+import tests.api.org.punit.testclasses.*;
+import tests.util.*;
+
+public class PUnitAbstractTestMethodBuilderTest extends TestCase {
+
+ private MockTestMethodBuilder _builder = new MockTestMethodBuilder();
+
+ public void testAddInterfaces() {
+ _builder.addTestInterfaces(new Class[] { TestInterface1.class });
+ Object[] methods = _builder.buildTestMethods(TestInterfaceImpl1.class);
+ String[] names = TestUtil.toMethodNameArray(methods);
+ AssertUtil.assertArrayContent(names, new String[] {"method1"}); //$NON-NLS-1$
+ }
+
+ static class MockTestMethodBuilder extends PUnitAbstractTestMethodBuilder {
+
+ protected boolean isParamValid(Method method) {
+ return true;
+ }
+
+ }
+
+}
Added: trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterface1.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterface1.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterface1.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -0,0 +1,6 @@
+package tests.api.org.punit.testclasses;
+
+
+public interface TestInterface1 {
+ public void method1();
+}
Added: trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterfaceImpl1.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterfaceImpl1.java (rev 0)
+++ trunk/punit.test/src/tests/api/org/punit/testclasses/TestInterfaceImpl1.java 2007-05-14 20:48:10 UTC (rev 76)
@@ -0,0 +1,9 @@
+package tests.api.org.punit.testclasses;
+
+public class TestInterfaceImpl1 implements TestInterface1 {
+
+ public void method1() {
+ throw new UnsupportedOperationException();
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|