Author: julien(a)jboss.com
Date: 2007-10-13 15:26:25 -0400 (Sat, 13 Oct 2007)
New Revision: 8634
Added:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/AbstractTestRunnerTests.java
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/POJOTestRunnerTests.java
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
Log:
added tests for POJO test runner integration with runtime parameter override
Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java 2007-10-13 18:07:51
UTC (rev 8633)
+++ modules/test/trunk/unit/src/main/org/jboss/test/unit/AllTests.java 2007-10-13 19:26:25
UTC (rev 8634)
@@ -32,6 +32,7 @@
import org.jboss.test.unit.runner.ParametrizationTests;
import org.jboss.test.unit.runner.TestDriverRunnerTests;
import org.jboss.test.unit.runner.GenericTestRunnerTests;
+import org.jboss.test.unit.runner.POJOTestRunnerTests;
import org.jboss.test.unit.runner.event.TestRunnerEventBroadcasterSupportTests;
import org.jboss.test.unit.runner.event.TestRunnerLifeCycleFilterTests;
import org.jboss.test.unit.runner.model.ModelTests;
@@ -52,6 +53,7 @@
CompositeTestRunnerTests.main(args);
TestDriverRunnerTests.main(args);
GenericTestRunnerTests.main(args);
+ POJOTestRunnerTests.main(args);
//
TestRunnerLifeCycleFilterTests.main(args);
Added:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/AbstractTestRunnerTests.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/AbstractTestRunnerTests.java
(rev 0)
+++
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/AbstractTestRunnerTests.java 2007-10-13
19:26:25 UTC (rev 8634)
@@ -0,0 +1,133 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.test.unit.runner;
+
+import org.jboss.unit.driver.AbstractTestDriver;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.DriverCommand;
+import org.jboss.unit.driver.command.StartTestCommand;
+import org.jboss.unit.TestId;
+import org.jboss.unit.runner.TestRunnerEvent;
+import org.jboss.unit.runner.TestResult;
+import org.jboss.unit.runner.TestRunnerEventListener;
+import org.jboss.unit.runner.results.TestFailure;
+import org.jboss.unit.runner.results.TestSuccess;
+import org.jboss.unit.runner.event.StartRunnerEvent;
+import org.jboss.unit.runner.event.StartTestEvent;
+import org.jboss.unit.runner.event.EndTestEvent;
+import org.jboss.unit.runner.event.EndRunnerEvent;
+import static org.jboss.unit.api.Assert.assertEquals;
+import static org.jboss.unit.api.Assert.assertInstanceOf;
+import org.jboss.unit.info.impl.SimpleTestSuiteInfo;
+import org.jboss.unit.info.TestInfo;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class AbstractTestRunnerTests
+{
+
+ protected static class EventList implements TestRunnerEventListener
+ {
+
+ /** . */
+ protected final List<TestRunnerEvent> events = new
ArrayList<TestRunnerEvent>();
+
+ public void onEvent(TestRunnerEvent event)
+ {
+ events.add(event);
+ }
+ }
+
+ protected static class TestDriverImpl extends AbstractTestDriver
+ {
+
+ protected List<TestId> ids = new ArrayList<TestId>();
+
+ /** . */
+ protected SimpleTestSuiteInfo info = new SimpleTestSuiteInfo("blah");
+
+ public TestInfo getInfo()
+ {
+ return info;
+ }
+
+ public final DriverResponse invoke(TestId id, DriverCommand command)
+ {
+ if (command instanceof StartTestCommand)
+ {
+ ids.add(id);
+ }
+ return invoke2(id, command);
+ }
+
+ public DriverResponse invoke2(TestId id, DriverCommand command)
+ {
+ return null;
+ }
+
+ public void assertIdList(List<TestId> ids)
+ {
+ assertEquals(ids, this.ids);
+ }
+ }
+
+ protected static void assertStartRunnerEvent(TestRunnerEvent event)
+ {
+ assertInstanceOf(event, StartRunnerEvent.class);
+ }
+
+ protected static void assertStartTestEvent(TestRunnerEvent event, TestId
expectedTestId)
+ {
+ StartTestEvent startEvent = assertInstanceOf(event, StartTestEvent.class);
+ assertEquals(expectedTestId, startEvent.getTestId());
+ }
+
+ protected static void assertEndTestEvent(TestRunnerEvent event, TestId expectedTestId,
TestResult expectedTestResult)
+ {
+ EndTestEvent endEvent = assertInstanceOf(event, EndTestEvent.class);
+ assertEquals(expectedTestId, endEvent.getTestId());
+
+ //
+ TestResult testResult = endEvent.getTestResult();
+ if (expectedTestResult instanceof TestFailure)
+ {
+ TestFailure expectedTestFailure = (TestFailure)expectedTestResult;
+ TestFailure testFailure = assertInstanceOf(testResult, TestFailure.class);
+ assertEquals(expectedTestFailure.getFailure().getType(),
testFailure.getFailure().getType());
+ }
+ else if (expectedTestResult instanceof TestSuccess)
+ {
+ assertInstanceOf(testResult, TestSuccess.class);
+ }
+ }
+
+ protected static void assertEndRunnerEvent(TestRunnerEvent event)
+ {
+ assertInstanceOf(event, EndRunnerEvent.class);
+ }
+}
Added:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/POJOTestRunnerTests.java
===================================================================
--- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/POJOTestRunnerTests.java
(rev 0)
+++
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/POJOTestRunnerTests.java 2007-10-13
19:26:25 UTC (rev 8634)
@@ -0,0 +1,139 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.test.unit.runner;
+
+import org.jboss.unit.runner.impl.pojo.POJOTestRunner;
+import org.jboss.unit.runner.impl.TestRunnerContextSupport;
+import org.jboss.unit.runner.model.pojo.POJOTestSuiteDef;
+import org.jboss.unit.runner.model.pojo.TestClassDef;
+import org.jboss.unit.runner.TestRunnerContext;
+import org.jboss.unit.runner.ParametrizationSet;
+import org.jboss.unit.runner.results.TestSuccess;
+import org.jboss.unit.api.pojo.annotations.Test;
+import org.jboss.unit.api.pojo.annotations.Parameter;
+import static org.jboss.unit.api.Assert.assertEquals;
+import org.jboss.unit.TestId;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+
+import static org.jboss.unit.api.Assert.*;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class POJOTestRunnerTests extends AbstractTestRunnerTests
+{
+ public static void main(String[] args)
+ {
+ testPOJO1_1();
+ testPOJO1_2();
+ }
+
+ private static void testPOJO1_1()
+ {
+ POJO1.instances.clear();
+
+ //
+ TestClassDef testClass = new TestClassDef(POJO1.class.getName());
+ testClass.getParameters().setParameter("foo", "bar_def");
+ POJOTestSuiteDef suite = new POJOTestSuiteDef();
+ suite.addClass(testClass);
+
+ //
+ EventList listener = new EventList();
+ TestRunnerContext ctx = new TestRunnerContextSupport(new ParametrizationSet(),
listener);
+ POJOTestRunner runner = new POJOTestRunner(suite);
+ runner.run(ctx);
+
+ //
+ assertEquals(1, POJO1.instances.size());
+ POJO1 pojo1_1 = assertNotNull(POJO1.instances.get(0));
+ assertEquals("bar_def", pojo1_1.foo);
+
+ //
+ assertEquals(4, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("test"));
+ assertEndTestEvent(listener.events.get(2), new TestId("test"), new
TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(3));
+ }
+
+ private static void testPOJO1_2()
+ {
+ POJO1.instances.clear();
+
+ //
+ TestClassDef testClass = new TestClassDef(POJO1.class.getName());
+ testClass.getParameters().setParameter("foo", "bar_def");
+ POJOTestSuiteDef suite = new POJOTestSuiteDef();
+ suite.addClass(testClass);
+
+ //
+ Map<String,String[]> parametrizations = new HashMap<String,
String[]>();
+ parametrizations.put("foo", new
String[]{"bar_runtime_1","bar_runtime_2"});
+
+ //
+ EventList listener = new EventList();
+ TestRunnerContext ctx = new TestRunnerContextSupport(new
ParametrizationSet(parametrizations), listener);
+ POJOTestRunner runner = new POJOTestRunner(suite);
+ runner.run(ctx);
+
+ //
+ assertEquals(2, POJO1.instances.size());
+ POJO1 pojo1_1 = assertNotNull(POJO1.instances.get(0));
+ assertEquals("bar_runtime_1", pojo1_1.foo);
+ POJO1 pojo1_2 = assertNotNull(POJO1.instances.get(1));
+ assertEquals("bar_runtime_2", pojo1_2.foo);
+
+ //
+ assertEquals(6, listener.events.size());
+ assertStartRunnerEvent(listener.events.get(0));
+ assertStartTestEvent(listener.events.get(1), new TestId("test"));
+ assertEndTestEvent(listener.events.get(2), new TestId("test"), new
TestSuccess(0));
+ assertStartTestEvent(listener.events.get(3), new TestId("test"));
+ assertEndTestEvent(listener.events.get(4), new TestId("test"), new
TestSuccess(0));
+ assertEndRunnerEvent(listener.events.get(5));
+ }
+
+ public static class POJO1
+ {
+
+ static List<POJO1> instances = new ArrayList<POJO1>();
+
+ String foo;
+ @Parameter
+ public void setFoo(String foo)
+ {
+ this.foo = foo;
+ }
+ @Test
+ public void test()
+ {
+ instances.add(this);
+ }
+ }
+}
Modified:
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java
===================================================================
---
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-13
18:07:51 UTC (rev 8633)
+++
modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRunnerTests.java 2007-10-13
19:26:25 UTC (rev 8634)
@@ -24,31 +24,20 @@
import org.jboss.unit.runner.impl.driver.TestDriverRunner;
import org.jboss.unit.runner.impl.TestRunnerContextSupport;
-import org.jboss.unit.runner.TestRunnerEvent;
-import org.jboss.unit.runner.TestResult;
import org.jboss.unit.runner.ParametrizationSet;
-import org.jboss.unit.runner.TestRunnerEventListener;
import org.jboss.unit.runner.results.TestFailure;
import org.jboss.unit.runner.results.TestSuccess;
import org.jboss.unit.runner.event.EndTestEvent;
-import org.jboss.unit.runner.event.StartTestEvent;
-import org.jboss.unit.runner.event.StartRunnerEvent;
-import org.jboss.unit.runner.event.EndRunnerEvent;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.DriverCommand;
-import org.jboss.unit.driver.AbstractTestDriver;
-import org.jboss.unit.driver.command.StartTestCommand;
import org.jboss.unit.driver.response.EndTestResponse;
import org.jboss.unit.driver.response.FailureResponse;
-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 org.jboss.unit.FailureType;
import org.jboss.unit.Failure;
-import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@@ -57,13 +46,12 @@
import static org.jboss.unit.util.CollectionTools.*;
import static org.jboss.unit.api.Assert.*;
-import static org.jboss.unit.api.Assert.assertEquals;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class TestDriverRunnerTests
+public class TestDriverRunnerTests extends AbstractTestRunnerTests
{
public static void main(String[] args)
@@ -368,83 +356,4 @@
assertStartTestEvent(listener.events.get(1), new TestId("Foo"));
}
- private static class TestDriverImpl extends AbstractTestDriver
- {
-
- List<TestId> ids = new ArrayList<TestId>();
-
- /** . */
- private SimpleTestSuiteInfo info = new SimpleTestSuiteInfo("blah");
-
- public TestInfo getInfo()
- {
- return info;
- }
-
- public final DriverResponse invoke(TestId id, DriverCommand command)
- {
- if (command instanceof StartTestCommand)
- {
- ids.add(id);
- }
- return invoke2(id, command);
- }
-
- public DriverResponse invoke2(TestId id, DriverCommand command)
- {
- return null;
- }
-
- public void assertIdList(List<TestId> ids)
- {
- assertEquals(ids, this.ids);
- }
- }
-
- private static void assertStartRunnerEvent(TestRunnerEvent event)
- {
- assertInstanceOf(event, StartRunnerEvent.class);
- }
-
- private static void assertStartTestEvent(TestRunnerEvent event, TestId
expectedTestId)
- {
- StartTestEvent startEvent = assertInstanceOf(event, StartTestEvent.class);
- assertEquals(expectedTestId, startEvent.getTestId());
- }
-
- private static void assertEndTestEvent(TestRunnerEvent event, TestId expectedTestId,
TestResult expectedTestResult)
- {
- EndTestEvent endEvent = assertInstanceOf(event, EndTestEvent.class);
- assertEquals(expectedTestId, endEvent.getTestId());
-
- //
- TestResult testResult = endEvent.getTestResult();
- if (expectedTestResult instanceof TestFailure)
- {
- TestFailure expectedTestFailure = (TestFailure)expectedTestResult;
- TestFailure testFailure = assertInstanceOf(testResult, TestFailure.class);
- assertEquals(expectedTestFailure.getFailure().getType(),
testFailure.getFailure().getType());
- }
- else if (expectedTestResult instanceof TestSuccess)
- {
- assertInstanceOf(testResult, TestSuccess.class);
- }
- }
-
- private static void assertEndRunnerEvent(TestRunnerEvent event)
- {
- assertInstanceOf(event, EndRunnerEvent.class);
- }
-
- private static class EventList implements TestRunnerEventListener
- {
-
- /** . */
- private final List<TestRunnerEvent> events = new
ArrayList<TestRunnerEvent>();
-
- public void onEvent(TestRunnerEvent event)
- {
- events.add(event);
- }
- }
}