Author: julien(a)jboss.com
Date: 2007-10-13 11:22:07 -0400 (Sat, 13 Oct 2007)
New Revision: 8630
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/GenericTestRunnerTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/ParametrizationSet.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/TestRunnerContextSupport.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/generic/GenericTestRunner.java
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java
Log:
test runtime parameters combination with generic test runner
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/GenericTestRunnerTests.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/GenericTestRunnerTests.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/GenericTestRunnerTests.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -26,7 +26,9 @@
import org.jboss.unit.runner.impl.TestRunnerContextSupport;
import org.jboss.unit.runner.model.generic.GenericTestSuiteDef;
import org.jboss.unit.runner.model.generic.TestDef;
-import org.jboss.unit.driver.TestDriver;
+import org.jboss.unit.runner.model.ParametersDef;
+import org.jboss.unit.runner.model.ParameterValueDef;
+import org.jboss.unit.runner.ParametrizationSet;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.DriverCommand;
import org.jboss.unit.driver.AbstractTestDriver;
@@ -35,6 +37,7 @@
import org.jboss.unit.info.TestInfo;
import org.jboss.unit.info.impl.SimpleTestSuiteInfo;
import org.jboss.unit.info.impl.SimpleTestCaseInfo;
+import org.jboss.unit.info.impl.SimpleParameterInfo;
import org.jboss.unit.TestId;
import static org.jboss.unit.api.Assert.*;
@@ -54,23 +57,69 @@
public static void main(String[] args)
{
- test1();
- test2();
- test3();
- test4();
+ testNoTestCase();
+ testOneTestCase();
+ testTwoTestCases1();
+ testTwoTestCases2();
+ testParametrization();
+ testParametrizationOverride();
}
- private static void test1()
+ private static void testParametrization()
{
Driver1.init();
+ SimpleTestCaseInfo fooInfo = new SimpleTestCaseInfo("foo");
+ fooInfo.addParameter(new SimpleParameterInfo("abc"));
+ Driver1.testSuiteInfo.addTest(fooInfo);
GenericTestSuiteDef suite = new GenericTestSuiteDef(Driver1.class.getName());
+ TestDef foo = new TestDef(new TestId("foo"));
+ suite.addTest(foo);
+ ParametersDef fooParameters = new ParametersDef();
+ fooParameters.setParameter("abc", new ParameterValueDef("def",
"ghi"));
+ foo.setParameters(fooParameters);
GenericTestRunner runner = new GenericTestRunner(suite);
runner.run(new TestRunnerContextSupport());
+ assertEquals(list(new TestId("foo"), new TestId("foo")),
Driver1.ids);
+ HashMap<String, String> expectedParametrization1 = new HashMap<String,
String>();
+ HashMap<String, String> expectedParametrization2 = new HashMap<String,
String>();
+ expectedParametrization1.put("abc", "def");
+ expectedParametrization2.put("abc", "ghi");
+ assertEquals(list(expectedParametrization1, expectedParametrization2),
Driver1.parametrizations);
+ }
+
+ private static void testParametrizationOverride()
+ {
+ Driver1.init();
+ SimpleTestCaseInfo fooInfo = new SimpleTestCaseInfo("foo");
+ fooInfo.addParameter(new SimpleParameterInfo("abc"));
+ Driver1.testSuiteInfo.addTest(fooInfo);
+ GenericTestSuiteDef suite = new GenericTestSuiteDef(Driver1.class.getName());
+ TestDef foo = new TestDef(new TestId("foo"));
+ suite.addTest(foo);
+ ParametersDef fooParameters = new ParametersDef();
+ fooParameters.setParameter("abc", new ParameterValueDef("def",
"ghi"));
+ foo.setParameters(fooParameters);
+ GenericTestRunner runner = new GenericTestRunner(suite);
+ Map<String,String[]> parametrizations = new HashMap<String,
String[]>();
+ parametrizations.put("abc", new String[]{"def"});
+ runner.run(new TestRunnerContextSupport(new
ParametrizationSet(parametrizations)));
+ assertEquals(list(new TestId("foo")), Driver1.ids);
+ HashMap<String, String> expectedParametrization1 = new HashMap<String,
String>();
+ expectedParametrization1.put("abc", "def");
+ assertEquals(list(expectedParametrization1), Driver1.parametrizations);
+ }
+
+ private static void testNoTestCase()
+ {
+ Driver1.init();
+ GenericTestSuiteDef suite = new GenericTestSuiteDef(Driver1.class.getName());
+ GenericTestRunner runner = new GenericTestRunner(suite);
+ runner.run(new TestRunnerContextSupport());
assertEquals(list(), Driver1.ids);
assertEquals(list(), Driver1.parametrizations);
}
- private static void test2()
+ private static void testOneTestCase()
{
Driver1.init();
Driver1.testSuiteInfo.addTest(new SimpleTestCaseInfo("foo"));
@@ -82,7 +131,7 @@
assertEquals(list(new HashMap()), Driver1.parametrizations);
}
- private static void test3()
+ private static void testTwoTestCases1()
{
Driver1.init();
Driver1.testSuiteInfo.addTest(new SimpleTestCaseInfo("foo"));
@@ -95,7 +144,7 @@
assertEquals(list(new HashMap()), Driver1.parametrizations);
}
- private static void test4()
+ private static void testTwoTestCases2()
{
Driver1.init();
Driver1.testSuiteInfo.addTest(new SimpleTestCaseInfo("foo"));
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -121,6 +121,25 @@
this.parameters = tmp;
}
+ public void addParameter(ParameterInfo parameter)
+ {
+ if (parameter == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ SimpleParameterInfo tmp = new SimpleParameterInfo(parameter);
+ parameters.put(tmp.getName(), tmp);
+ }
+
+ public void removeParameter(String name)
+ {
+ if (name == null)
+ {
+ throw new IllegalArgumentException();
+ }
+ parameters.remove(name);
+ }
+
public Set<String> getKeywords()
{
return Collections.unmodifiableSet(keywords);
Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/ParametrizationSet.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/runner/ParametrizationSet.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/runner/ParametrizationSet.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -49,14 +49,18 @@
this.map = new HashMap<String, String[]>();
}
- public void merge(ParametrizationSet other)
+ public void combine(ParametrizationSet other) throws IllegalArgumentException
{
+ if (other == null)
+ {
+ throw new IllegalArgumentException();
+ }
for (Map.Entry<String,String[]> entry : other.map.entrySet())
{
- if (!map.containsKey(entry.getKey()))
- {
- map.put(entry.getKey(), entry.getValue().clone());
- }
+ String key = entry.getKey();
+
+ //
+ map.put(key, entry.getValue().clone());
}
}
Modified:
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/TestRunnerContextSupport.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/TestRunnerContextSupport.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/TestRunnerContextSupport.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -55,6 +55,11 @@
this(new HashMap<String, String>(), new ParametrizationSet(),
NullFilter.getInstance(), eventListener);
}
+ public TestRunnerContextSupport(ParametrizationSet parametrizations)
+ {
+ this(new HashMap<String, String>(), parametrizations,
NullFilter.getInstance(), new TestRunnerEventBroadcaster());
+ }
+
public TestRunnerContextSupport(ParametrizationSet parametrizations,
TestRunnerEventListener eventListener)
{
this(new HashMap<String, String>(), parametrizations,
NullFilter.getInstance(), eventListener);
Modified:
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/generic/GenericTestRunner.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/generic/GenericTestRunner.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/generic/GenericTestRunner.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -80,9 +80,11 @@
for (TestDef testDef : testDefs)
{
// Create parametrization
- ParametrizationSet parametrizations =
def.getParameters().getParametrization();
- parametrizations.merge(testDef.getParameters().getParametrization());
+ ParametrizationSet parametrizations =
def.getParameters().getParametrization().clone();
+ parametrizations.combine(testDef.getParameters().getParametrization());
+ parametrizations.combine(context.getParametrizations());
+ //
TestRunnerContextSupport genericContext = new
TestRunnerContextSupport(context.getProperties(), parametrizations, context.getFilter(),
tmp);
//
Modified:
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java 2007-10-13
12:38:42 UTC (rev 8629)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/pojo/POJOTestRunner.java 2007-10-13
15:22:07 UTC (rev 8630)
@@ -89,8 +89,9 @@
}
// Create parametrization
- ParametrizationSet parametrizations =
suite.getParameters().getParametrization();
- parametrizations.merge(testClass.getParameters().getParametrization());
+ ParametrizationSet parametrizations =
suite.getParameters().getParametrization().clone();
+ parametrizations.combine(testClass.getParameters().getParametrization());
+ parametrizations.combine(context.getParametrizations());
//
TestRunnerContextSupport pojoContext = new
TestRunnerContextSupport(context.getProperties(), parametrizations, context.getFilter(),
tmp);