[jboss-svn-commits] JBoss Common SVN: r3777 - in arquillian/trunk/junit/src/main: resources and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Nov 24 08:47:54 EST 2009
Author: aslak
Date: 2009-11-24 08:47:54 -0500 (Tue, 24 Nov 2009)
New Revision: 3777
Added:
arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java
arquillian/trunk/junit/src/main/resources/META-INF/
arquillian/trunk/junit/src/main/resources/META-INF/services/
arquillian/trunk/junit/src/main/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner
Log:
ARQ-28 TestRunner SPI impl for JUnit
Added: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java (rev 0)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/JUnitTestRunner.java 2009-11-24 13:47:54 UTC (rev 3777)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.arquillian.junit;
+
+import org.jboss.arquillian.impl.DeployableTest;
+import org.jboss.arquillian.impl.TestResultImpl;
+import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.TestRunner;
+import org.jboss.arquillian.spi.TestResult.Status;
+import org.jboss.shrinkwrap.impl.base.Validate;
+import org.junit.runner.JUnitCore;
+import org.junit.runner.Request;
+import org.junit.runner.Result;
+
+/**
+ * JUnitTestRunner
+ *
+ * A Implementation of the Arquillian TestRunner SPI for JUnit.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class JUnitTestRunner implements TestRunner
+{
+ private ExecutionMode executionMode = ExecutionMode.STANDALONE;
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.TestRunner#setExecutionMode(org.jboss.arquillian.spi.TestRunner.ExecutionMode)
+ */
+ @Override
+ public void setExecutionMode(ExecutionMode executionMode)
+ {
+ Validate.notNull(executionMode, "ExecutionMode must be specified");
+ this.executionMode = executionMode;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.TestRunner#execute(java.lang.Class, java.lang.String)
+ */
+ @Override
+ public TestResult execute(Class<?> testClass, String methodName)
+ {
+ setExecutionMode();
+
+ JUnitCore runner = new JUnitCore();
+ Result result = runner.run(
+ Request.method(
+ testClass,
+ methodName));
+
+ TestResult testResult = convertToTestResult(result);
+
+ resetExecutionMode();
+
+ return testResult;
+ }
+
+ private void setExecutionMode()
+ {
+ switch (executionMode)
+ {
+ case CONTAINER:
+ DeployableTest.setInContainer(true);
+ break;
+ }
+ }
+
+ private void resetExecutionMode()
+ {
+ switch (executionMode)
+ {
+ case CONTAINER:
+ DeployableTest.setInContainer(false);
+ break;
+ }
+ }
+
+ /**
+ * Convert a JUnit Result object to Arquillian TestResult
+ *
+ * @param result JUnit Test Run Result
+ * @return The TestResult representation of the JUnit Result
+ */
+ private TestResult convertToTestResult(Result result)
+ {
+ Status status = Status.PASSED;
+ Throwable throwable = null;
+
+ if(result.getFailureCount() > 0)
+ {
+ status = Status.FAILED;
+ throwable = result.getFailures().get(0).getException();
+ }
+ if(result.getIgnoreCount() > 0)
+ {
+ status = Status.SKIPPED;
+ }
+ return new TestResultImpl(status, throwable);
+ }
+}
Added: arquillian/trunk/junit/src/main/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner
===================================================================
--- arquillian/trunk/junit/src/main/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner (rev 0)
+++ arquillian/trunk/junit/src/main/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner 2009-11-24 13:47:54 UTC (rev 3777)
@@ -0,0 +1 @@
+org.jboss.arquillian.junit.JUnitTestRunner
\ No newline at end of file
More information about the jboss-svn-commits
mailing list