From portal-commits at lists.jboss.org Tue Oct 9 18:30:12 2007 Content-Type: multipart/mixed; boundary="===============7946296213291067820==" MIME-Version: 1.0 From: portal-commits at lists.jboss.org To: portal-commits at lists.jboss.org Subject: [portal-commits] JBoss Portal SVN: r8579 - in modules/test/trunk/unit/src/main/org/jboss: unit/runner/impl/driver and 1 other directory. Date: Tue, 09 Oct 2007 18:30:12 -0400 Message-ID: --===============7946296213291067820== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: julien(a)jboss.com Date: 2007-10-09 18:30:12 -0400 (Tue, 09 Oct 2007) New Revision: 8579 Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverRu= nnerTests.java modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/TestD= riverRunner.java Log: if the test driver throws a runtime exception, translate it as a test failu= re Modified: modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestD= riverRunnerTests.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverR= unnerTests.java 2007-10-09 22:05:30 UTC (rev 8578) +++ modules/test/trunk/unit/src/main/org/jboss/test/unit/runner/TestDriverR= unnerTests.java 2007-10-09 22:30:12 UTC (rev 8579) @@ -25,9 +25,13 @@ import org.jboss.unit.runner.impl.driver.TestDriverRunner; import org.jboss.unit.runner.TestRunnerEventListener; import org.jboss.unit.runner.TestRunnerEvent; +import org.jboss.unit.runner.TestResult; 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.TestDriver; import org.jboss.unit.driver.DriverResponse; import org.jboss.unit.driver.DriverCommand; @@ -44,6 +48,7 @@ import java.util.ArrayList; = import static org.jboss.unit.api.Assert.*; +import static org.jboss.unit.api.Assert.assertEquals; = /** * @author Julien Viet @@ -70,6 +75,7 @@ testTestDriverInvokeReturnsNull(); testTestDriverInvokeReturnsAnEndTestResponse(); testTestDriverInvokeReturnsAFailureResponse(); + testTestDriverInvokeThrowsRuntimeException(); = = } @@ -86,26 +92,18 @@ TestDriverImpl testDriver =3D new TestDriverImpl(); testDriver.info.addTest(new SimpleTestCaseInfo("Foo")); TestDriverRunner runner =3D new TestDriverRunner(testDriver, new Tes= tId()); - Blah listener =3D new Blah(); runner.addListener(listener); = - // Check that we received an error + // runner.run(); = // assertEquals(4, listener.events.size()); - - // - StartTestEvent startEvent =3D assertInstanceOf(listener.events.get(1= ), StartTestEvent.class); - assertEquals(new TestId("Foo"), startEvent.getTestId()); - - // - EndTestEvent endEvent =3D assertInstanceOf(listener.events.get(2), E= ndTestEvent.class); - assertEquals(new TestId("Foo"), endEvent.getTestId()); - TestFailure testFailure =3D assertInstanceOf(endEvent.getTestResult(= ), TestFailure.class); - Failure failure =3D testFailure.getFailure(); - assertEquals(FailureType.ERROR, failure.getType()); + assertStartRunnerEvent(listener.events.get(0)); + assertStartTestEvent(listener.events.get(1), new TestId("Foo")); + assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new Te= stFailure(new Failure("", FailureType.ERROR), 0)); + assertEndRunnerEvent(listener.events.get(3)); } = private static void testTestDriverInvokeReturnsAnEndTestResponse() @@ -119,9 +117,18 @@ }; testDriver.info.addTest(new SimpleTestCaseInfo("Foo")); TestDriverRunner runner =3D new TestDriverRunner(testDriver, new Tes= tId()); + Blah listener =3D new Blah(); + runner.addListener(listener); = - // Check that we received an internal error + // = runner.run(); + + // + assertEquals(4, listener.events.size()); + assertStartRunnerEvent(listener.events.get(0)); + assertStartTestEvent(listener.events.get(1), new TestId("Foo")); + assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new Te= stSuccess(0)); + assertEndRunnerEvent(listener.events.get(3)); } = private static void testTestDriverInvokeReturnsAFailureResponse() @@ -135,11 +142,45 @@ }; testDriver.info.addTest(new SimpleTestCaseInfo("Foo")); TestDriverRunner runner =3D new TestDriverRunner(testDriver, new Tes= tId()); + Blah listener =3D new Blah(); + runner.addListener(listener); = - // Check that we received an internal error + // runner.run(); + + // + assertEquals(4, listener.events.size()); + assertStartRunnerEvent(listener.events.get(0)); + assertStartTestEvent(listener.events.get(1), new TestId("Foo")); + assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new Te= stFailure(new Failure("", FailureType.ERROR), 0)); + assertEndRunnerEvent(listener.events.get(3)); } = + private static void testTestDriverInvokeThrowsRuntimeException() + { + TestDriverImpl testDriver =3D new TestDriverImpl() + { + public DriverResponse invoke(TestId id, DriverCommand command) + { + throw new RuntimeException(); + } + }; + testDriver.info.addTest(new SimpleTestCaseInfo("Foo")); + TestDriverRunner runner =3D new TestDriverRunner(testDriver, new Tes= tId()); + Blah listener =3D new Blah(); + runner.addListener(listener); + + // + runner.run(); + + // + assertEquals(4, listener.events.size()); + assertStartRunnerEvent(listener.events.get(0)); + assertStartTestEvent(listener.events.get(1), new TestId("Foo")); + assertEndTestEvent(listener.events.get(2), new TestId("Foo"), new Te= stFailure(new Failure("", FailureType.ERROR), 0)); + assertEndRunnerEvent(listener.events.get(3)); + } + private static class TestDriverImpl implements TestDriver { = @@ -157,6 +198,36 @@ } } = + private static void assertStartRunnerEvent(TestRunnerEvent event) + { + assertInstanceOf(event, StartRunnerEvent.class); + } = + private static void assertStartTestEvent(TestRunnerEvent event, TestId = expectedTestId) + { + StartTestEvent startEvent =3D assertInstanceOf(event, StartTestEvent= .class); + assertEquals(expectedTestId, startEvent.getTestId()); + } = + private static void assertEndTestEvent(TestRunnerEvent event, TestId ex= pectedTestId, TestResult expectedResult) + { + EndTestEvent endEvent =3D assertInstanceOf(event, EndTestEvent.class= ); + assertEquals(expectedTestId, endEvent.getTestId()); + if (expectedResult instanceof TestFailure) + { + TestFailure expectedTestFailure =3D (TestFailure)expectedResult; + TestFailure testFailure =3D assertInstanceOf(endEvent.getTestResu= lt(), TestFailure.class); + assertEquals(expectedTestFailure.getFailure().getType(), testFail= ure.getFailure().getType()); + } + else if (expectedResult instanceof TestSuccess) + { + TestSuccess expectedTestSuccess =3D (TestSuccess)expectedResult; + TestSuccess testSuccess =3D assertInstanceOf(endEvent.getTestResu= lt(), TestSuccess.class); + } + } + + private static void assertEndRunnerEvent(TestRunnerEvent event) + { + assertInstanceOf(event, EndRunnerEvent.class); + } } Modified: modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/drive= r/TestDriverRunner.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/Test= DriverRunner.java 2007-10-09 22:05:30 UTC (rev 8578) +++ modules/test/trunk/unit/src/main/org/jboss/unit/runner/impl/driver/Test= DriverRunner.java 2007-10-09 22:30:12 UTC (rev 8579) @@ -118,24 +118,27 @@ fireEvent(new StartTestEvent(testId, testCaseInfo)); = // - DriverResponse response =3D driver.invoke(testId, new Start= TestCommand(parametrization)); + StartTestCommand command =3D new StartTestCommand(parametri= zation); = // - TestResult result; - if (response instanceof EndTestResponse) + TestResult result =3D null; + + // + DriverResponse response =3D null; + try { - result =3D new TestSuccess(0); + response =3D driver.invoke(testId, command); } - else if (response instanceof FailureResponse) + catch (Exception e) { - FailureResponse failureResponse =3D (FailureResponse)res= ponse; - Failure failure =3D failureResponse.getFailure(); + Failure failure =3D new Failure("The test driver threw a= n unexpected exception ", e, FailureType.ERROR); result =3D new TestFailure(failure, 0); } - else + + // + if (result =3D=3D null) { - Failure failure =3D new Failure("The test driver returne= d an unexpected response " + response, FailureType.ERROR); - result =3D new TestFailure(failure, 0); + result =3D unwrap(response); } = // @@ -144,4 +147,23 @@ } } } + + private TestResult unwrap(DriverResponse response) + { + if (response instanceof EndTestResponse) + { + return new TestSuccess(0); + } + else if (response instanceof FailureResponse) + { + FailureResponse failureResponse =3D (FailureResponse)response; + Failure failure =3D failureResponse.getFailure(); + return new TestFailure(failure, 0); + } + else + { + Failure failure =3D new Failure("The test driver returned an unex= pected response " + response, FailureType.ERROR); + return new TestFailure(failure, 0); + } + } } --===============7946296213291067820==--