use JUnit parameterized test to test all known proxyFactory implementations

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/proxy/trunk@1580974 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/test/pom.xml b/test/pom.xml
index cb55f21..ffa7638 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -33,23 +33,26 @@
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>commons-proxy2-jdk</artifactId>
-            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>commons-proxy2-cglib</artifactId>
-            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>cglib</groupId>
             <artifactId>cglib-nodep</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>commons-proxy2-javassist</artifactId>
-            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>commons-proxy2-asm4</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/test/src/test/java/org/apache/commons/proxy2/stub/AbstractStubTestCase.java b/test/src/test/java/org/apache/commons/proxy2/stub/AbstractStubTestCase.java
index 4105e01..17ca2af 100644
--- a/test/src/test/java/org/apache/commons/proxy2/stub/AbstractStubTestCase.java
+++ b/test/src/test/java/org/apache/commons/proxy2/stub/AbstractStubTestCase.java
@@ -5,22 +5,33 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.commons.proxy2.ProxyFactory;
+import org.apache.commons.proxy2.asm4.ASM4ProxyFactory;
 import org.apache.commons.proxy2.cglib.CglibProxyFactory;
 import org.apache.commons.proxy2.invoker.NullInvoker;
+import org.apache.commons.proxy2.javassist.JavassistProxyFactory;
+import org.apache.commons.proxy2.jdk.JdkProxyFactory;
 import org.apache.commons.proxy2.provider.ObjectProviderUtils;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
 
+@RunWith(Parameterized.class)
 public abstract class AbstractStubTestCase
 {
     // ----------------------------------------------------------------------------------------------------------------------
     // Fields
     // ----------------------------------------------------------------------------------------------------------------------
 
-    protected ProxyFactory proxyFactory;
+    @Parameter
+    public ProxyFactory proxyFactory;
     protected StubInterface target;
 
     // ----------------------------------------------------------------------------------------------------------------------
@@ -33,10 +44,19 @@
     // Other Methods
     // ----------------------------------------------------------------------------------------------------------------------
 
+    @Parameters(name = "{0}")
+    public static List<Object[]> createParameters() {
+        final List<Object[]> result = new ArrayList<Object[]>();
+        result.add(new Object[] { new JdkProxyFactory() });
+        result.add(new Object[] { new CglibProxyFactory() });
+        result.add(new Object[] { new JavassistProxyFactory() });
+        result.add(new Object[] { new ASM4ProxyFactory() });
+        return result;
+    }
+
     @Before
     public final void setUpProxyFactory()
     {
-        this.proxyFactory = new CglibProxyFactory();
         this.target = proxyFactory.createInvokerProxy(NullInvoker.INSTANCE, StubInterface.class);
     }