Author: julien(a)jboss.com
Date: 2007-10-17 09:35:21 -0400 (Wed, 17 Oct 2007)
New Revision: 8678
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/info/InfoTests.java
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestCaseInfo.java
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestSuiteInfo.java
Log:
honor the contract defined by TestInfo.getParameters() for the SimpleTestSuiteInfo
implementation
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/info/InfoTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/info/InfoTests.java 2007-10-17
13:16:16 UTC (rev 8677)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/info/InfoTests.java 2007-10-17
13:35:21 UTC (rev 8678)
@@ -49,8 +49,41 @@
testParameterInfo();
testTestCaseInfo();
testSuiteInfo();
+ testSuiteParameterInfo();
}
+ private static void testSuiteParameterInfo()
+ {
+ SimpleTestSuiteInfo testSuite = new
SimpleTestSuiteInfo("my_test_suite");
+
+ //
+ SimpleTestCaseInfo fooTestCase = new
SimpleTestCaseInfo("foo_test_case");
+ fooTestCase.addParameter(new SimpleParameterInfo("foo_param"));
+ testSuite.addTest(fooTestCase);
+ assertEquals(set("foo_param"), testSuite.getParameters().keySet());
+
+ //
+ SimpleTestCaseInfo barTestCase = new
SimpleTestCaseInfo("bar_test_case");
+ barTestCase.addParameter(new SimpleParameterInfo("bar_param"));
+ testSuite.addTest(barTestCase);
+ assertEquals(set("foo_param", "bar_param"),
testSuite.getParameters().keySet());
+
+ //
+ barTestCase.addParameter(new SimpleParameterInfo("bar_param2"));
+ barTestCase.removeParameter("bar_param");
+ barTestCase.addParameter(new SimpleParameterInfo("bar_param2"));
+ testSuite.addTest(barTestCase);
+ assertEquals(set("foo_param", "bar_param2"),
testSuite.getParameters().keySet());
+
+ //
+ testSuite.removeTest("foo_test_case");
+ assertEquals(set("bar_param2"), testSuite.getParameters().keySet());
+
+ //
+ testSuite.removeTest("bar_test_case");
+ assertEquals(set(), testSuite.getParameters().keySet());
+ }
+
private static void testParameterInfo()
{
try
@@ -230,14 +263,6 @@
}
try
{
- testSuite.setParameters(null);
- fail();
- }
- catch (IllegalArgumentException e)
- {
- }
- try
- {
testSuite.getParameters().clear();
fail();
}
Modified:
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestCaseInfo.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestCaseInfo.java 2007-10-17
13:16:16 UTC (rev 8677)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestCaseInfo.java 2007-10-17
13:35:21 UTC (rev 8678)
@@ -23,7 +23,11 @@
package org.jboss.unit.info.impl;
import org.jboss.unit.info.TestCaseInfo;
+import org.jboss.unit.info.ParameterInfo;
+import java.util.Map;
+import java.util.HashMap;
+
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
@@ -44,4 +48,39 @@
{
return getName();
}
+
+ public void setParameters(Map<String, ? extends ParameterInfo> parameters)
+ {
+ if (parameters == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ Map<String, SimpleParameterInfo> tmp = new HashMap<String,
SimpleParameterInfo>();
+ for (Map.Entry<String, ? extends ParameterInfo> entry :
parameters.entrySet())
+ {
+ tmp.put(entry.getKey(), new SimpleParameterInfo(entry.getValue()));
+ }
+ 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);
+ }
}
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-17
13:16:16 UTC (rev 8677)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestInfo.java 2007-10-17
13:35:21 UTC (rev 8678)
@@ -39,16 +39,16 @@
{
/** . */
- private final String name;
+ protected final String name;
/** . */
- private String description;
+ protected String description;
/** . */
- private Map<String, SimpleParameterInfo> parameters;
+ protected Map<String, SimpleParameterInfo> parameters;
/** . */
- private Set<String> keywords;
+ protected Set<String> keywords;
public SimpleTestInfo(String name)
{
@@ -105,41 +105,6 @@
return Collections.unmodifiableMap(parameters);
}
- public void setParameters(Map<String, ? extends ParameterInfo> parameters)
- {
- if (parameters == null)
- {
- throw new IllegalArgumentException();
- }
-
- //
- Map<String, SimpleParameterInfo> tmp = new HashMap<String,
SimpleParameterInfo>();
- for (Map.Entry<String, ? extends ParameterInfo> entry :
parameters.entrySet())
- {
- tmp.put(entry.getKey(), new SimpleParameterInfo(entry.getValue()));
- }
- 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/info/impl/SimpleTestSuiteInfo.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestSuiteInfo.java 2007-10-17
13:16:16 UTC (rev 8677)
+++
modules/test/trunk/unit/src/main/org/jboss/unit/info/impl/SimpleTestSuiteInfo.java 2007-10-17
13:35:21 UTC (rev 8678)
@@ -119,6 +119,9 @@
throw new IllegalArgumentException();
}
tests.put(test.getName(), create(test));
+
+ // Update parameter map
+ updateParameters();
}
public void removeTest(String testName)
@@ -128,8 +131,24 @@
throw new IllegalArgumentException();
}
tests.remove(testName);
+
+ // Update parameter map
+ updateParameters();
}
+ /**
+ * Rebuild the suite parameters from the children parameters.
+ */
+ private void updateParameters()
+ {
+ Map<String, SimpleParameterInfo> parameters = new HashMap<String,
SimpleParameterInfo>();
+ for (SimpleTestInfo child : tests.values())
+ {
+ parameters.putAll(child.parameters);
+ }
+ this.parameters = parameters;
+ }
+
private SimpleTestInfo create(TestInfo test)
{
if (test instanceof TestSuiteInfo)