add tuscany test runner back into the new test layout
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@818023 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4485df4bb5
commit
992895003c
5 changed files with 496 additions and 0 deletions
153
java/sca/otest/newlayout/tuscany-test-runner/pom.xml
Normal file
153
java/sca/otest/newlayout/tuscany-test-runner/pom.xml
Normal file
|
@ -0,0 +1,153 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
-->
|
||||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-sca</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>tuscany-otests-asm-tests</artifactId>
|
||||
<name>Apache Tuscany SCA Specification Tests</name>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-node-impl</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-node-impl-osgi</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-implementation-java-runtime</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-binding-ws-axis2</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-otests-asm-General</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tuscany.sca</groupId>
|
||||
<artifactId>tuscany-otests-asm-General_Java</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.xml.ws</groupId>
|
||||
<artifactId>jaxws-rt</artifactId>
|
||||
<version>2.1.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
<build>
|
||||
<finalName>${artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.3</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant-trax</artifactId>
|
||||
<version>1.6.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-files-from-svn</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<ant antfile="../build.xml">
|
||||
<property name="from.dir" value="../sca-assembly/Test_Client/src/main/resources"/>
|
||||
<property name="to.dir" value="src/main/resources"/>
|
||||
<target name="copyResourceDir"/>
|
||||
</ant>
|
||||
<ant antfile="../build.xml">
|
||||
<property name="from.dir" value="../sca-assembly/Test_Client/src/main/java"/>
|
||||
<property name="to.dir" value="src/test/java"/>
|
||||
<target name="copySourceDir"/>
|
||||
</ant>
|
||||
</tasks>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>add-test-source</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>add-test-source</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sources>
|
||||
<source>src/test/tjava</source>
|
||||
</sources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,19 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you 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.
|
||||
|
||||
ASM_10001=Duplicate intent {http://docs.oasis-open.org/ns/opencsa/scatests/200903}Fred found in domain
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you 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.
|
||||
|
||||
# OASIS SCA Assembly test properties
|
||||
# The implementation type to use for Assembly test suite
|
||||
# org.oasis.sca.tests.assembly.lang=BPEL
|
||||
org.oasis.sca.tests.assembly.lang=Java
|
||||
|
||||
# The class to use as the Runtime Bridge for the SCA runtime under test
|
||||
# - use client.TuscanyRuntimeBridge for the OSGi runtime
|
||||
# - use tuscany.TuscanyRuntimeBridge for the Java runtime
|
||||
# org.oasis.sca.tests.assembly.runtime_bridge=client.TuscanyRuntimeBridge
|
||||
org.oasis.sca.tests.assembly.runtime_bridge=org.apache.tuscany.sca.otest.TuscanyRuntimeBridge
|
||||
|
||||
# The location of the contributions for the test suite
|
||||
# %1 represents the placement of the name of each contribution into the location URI
|
||||
org.oasis.sca.tests.assembly.contribution.location=../sca-assembly/%1/target/%1.zip
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.apache.tuscany.sca.otest;
|
||||
|
||||
import org.apache.tuscany.sca.node.Node;
|
||||
import org.apache.tuscany.sca.node.equinox.launcher.Contribution;
|
||||
import org.apache.tuscany.sca.node.equinox.launcher.ContributionLocationHelper;
|
||||
import org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher;
|
||||
|
||||
import client.RuntimeBridge;
|
||||
import client.TestConfiguration;
|
||||
|
||||
|
||||
/**
|
||||
* An implementation of the Runtime Bridge for the Apache Tuscany SCA runtime (version 2.x)
|
||||
*
|
||||
*/
|
||||
public class TuscanyOSGiRuntimeBridge implements RuntimeBridge {
|
||||
|
||||
static final String CONTRIBUTION_LOCATION_PROPKEY = "OASIS_TESTENV_CONTRIBUTION_LOCATION";
|
||||
|
||||
protected NodeLauncher launcher;
|
||||
protected Node node;
|
||||
TestConfiguration testConfiguration = null;
|
||||
|
||||
public TuscanyOSGiRuntimeBridge() {
|
||||
|
||||
}
|
||||
|
||||
public TestConfiguration getTestConfiguration() {
|
||||
return testConfiguration;
|
||||
}
|
||||
|
||||
public void setTestConfiguration(TestConfiguration testConfiguration) {
|
||||
this.testConfiguration = testConfiguration;
|
||||
}
|
||||
|
||||
public boolean startContribution(String contributionLocation, String[] contributionNames) throws Exception {
|
||||
try {
|
||||
// Tuscany specific code which starts the contribution(s) holding the test
|
||||
launcher = NodeLauncher.newInstance();
|
||||
|
||||
Contribution[] contributions = new Contribution[contributionNames.length];
|
||||
String[] contributionURIs = getContributionURIs(contributionLocation);
|
||||
for (int i = 0; i < contributions.length; i++) {
|
||||
contributions[i] = new Contribution(contributionNames[i], contributionURIs[i]);
|
||||
} // end for
|
||||
|
||||
node = launcher.createNode(testConfiguration.getComposite(), contributions);
|
||||
System.out.println("SCA Node API ClassLoader: " + node.getClass().getClassLoader());
|
||||
// Start the node
|
||||
node.start();
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
} // end try
|
||||
|
||||
return true;
|
||||
} // end method startContribution
|
||||
|
||||
/**
|
||||
* Gets the location of the Contributions as URIs
|
||||
* @param contributionLocation - a location pattern URI, which contains one or more "%1"
|
||||
* substrings, which are substituted with the name of the contribution to get the URI of
|
||||
* the contribution
|
||||
* @return the contribution locations as an array of Strings
|
||||
*/
|
||||
protected String[] getContributionURIs(String contributionLocation) throws Exception {
|
||||
String[] locations;
|
||||
locations = testConfiguration.getContributionNames();
|
||||
|
||||
if (locations != null && contributionLocation != null) {
|
||||
|
||||
for (int i = 0; i < locations.length; i++) {
|
||||
String aLocation = contributionLocation.replaceAll("%1", locations[i]);
|
||||
|
||||
locations[i] = aLocation;
|
||||
} // end for
|
||||
} else {
|
||||
if (locations == null) {
|
||||
// No contribution specified - throw an Exception
|
||||
throw new Exception("Unable to start SCA runtime - no contribution supplied - error");
|
||||
} else {
|
||||
// No contribution location supplied - throw an Exception
|
||||
throw new Exception("Unable to start SCA runtime - no contribution location supplied - error");
|
||||
} // end if
|
||||
} // end if
|
||||
|
||||
return locations;
|
||||
} // end getContributionURI
|
||||
|
||||
public void stopContribution() {
|
||||
if (node != null) {
|
||||
node.stop();
|
||||
node.destroy();
|
||||
} // end if
|
||||
if (launcher != null) {
|
||||
launcher.destroy();
|
||||
} // end if
|
||||
} // end method stopContribution
|
||||
|
||||
public String getContributionLocation(Class<?> testClass) {
|
||||
return ContributionLocationHelper.getContributionLocation(testConfiguration.getTestClass());
|
||||
} // end method getContributionLocation
|
||||
|
||||
public boolean checkError(String testName, Throwable exception) {
|
||||
// TODO Auto-generated method stub
|
||||
return true;
|
||||
}
|
||||
|
||||
} // end class TuscanyRuntimeBridge
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.apache.tuscany.sca.otest;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.tuscany.sca.node.Contribution;
|
||||
import org.apache.tuscany.sca.node.ContributionLocationHelper;
|
||||
import org.apache.tuscany.sca.node.Node;
|
||||
import org.apache.tuscany.sca.node.NodeFactory;
|
||||
|
||||
import client.RuntimeBridge;
|
||||
import client.TestConfiguration;
|
||||
|
||||
/**
|
||||
* An implementation of the Runtime Bridge for the Apache Tuscany SCA runtime (version 2.x)
|
||||
*
|
||||
*/
|
||||
public class TuscanyRuntimeBridge implements RuntimeBridge {
|
||||
|
||||
static final String CONTRIBUTION_LOCATION_PROPKEY = "OASIS_TESTENV_CONTRIBUTION_LOCATION";
|
||||
|
||||
protected NodeFactory launcher;
|
||||
protected Node node;
|
||||
protected Properties expectedErrorMessages;
|
||||
|
||||
TestConfiguration testConfiguration = null;
|
||||
|
||||
public TuscanyRuntimeBridge() {
|
||||
// read test error mapping
|
||||
expectedErrorMessages = new Properties();
|
||||
try {
|
||||
InputStream propertiesStream = this.getClass().getResourceAsStream("/oasis-sca-tests-errors.properties");
|
||||
expectedErrorMessages.load(propertiesStream);
|
||||
} catch (IOException e) {
|
||||
System.out.println("Unable to read oasis-sca-tests-errors.properties file");
|
||||
}
|
||||
}
|
||||
|
||||
public TestConfiguration getTestConfiguration() {
|
||||
return testConfiguration;
|
||||
}
|
||||
|
||||
public void setTestConfiguration(TestConfiguration testConfiguration) {
|
||||
this.testConfiguration = testConfiguration;
|
||||
}
|
||||
|
||||
public boolean startContribution(String contributionLocation, String[] contributionNames) throws Exception {
|
||||
try {
|
||||
// Tuscany specific code which starts the contribution(s) holding the test
|
||||
launcher = NodeFactory.newInstance();
|
||||
|
||||
Contribution[] contributions = new Contribution[contributionNames.length];
|
||||
String[] contributionURIs = getContributionURIs(contributionLocation);
|
||||
for (int i = 0; i < contributions.length; i++) {
|
||||
contributions[i] = new Contribution(contributionNames[i], contributionURIs[i]);
|
||||
} // end for
|
||||
|
||||
node = launcher.createNode(testConfiguration.getComposite(), contributions);
|
||||
// Start the node
|
||||
node.start();
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
} // end try
|
||||
|
||||
return true;
|
||||
} // end method startContribution
|
||||
|
||||
/**
|
||||
* Gets the location of the Contributions as URIs
|
||||
* @param contributionLocation - a location pattern URI, which contains one or more "%1"
|
||||
* substrings, which are substituted with the name of the contribution to get the URI of
|
||||
* the contribution
|
||||
* @return the contribution locations as an array of Strings
|
||||
*/
|
||||
protected String[] getContributionURIs(String contributionLocation) throws Exception {
|
||||
String[] locations;
|
||||
locations = testConfiguration.getContributionNames();
|
||||
|
||||
if (locations != null && contributionLocation != null) {
|
||||
|
||||
for (int i = 0; i < locations.length; i++) {
|
||||
String aLocation = contributionLocation.replaceAll("%1", locations[i]);
|
||||
|
||||
locations[i] = aLocation;
|
||||
} // end for
|
||||
} else {
|
||||
if (locations == null) {
|
||||
// No contribution specified - throw an Exception
|
||||
throw new Exception("Unable to start SCA runtime - no contribution supplied - error");
|
||||
} else {
|
||||
// No contribution location supplied - throw an Exception
|
||||
throw new Exception("Unable to start SCA runtime - no contribution location supplied - error");
|
||||
} // end if
|
||||
} // end if
|
||||
|
||||
return locations;
|
||||
} // end getContributionURI
|
||||
|
||||
public void stopContribution() {
|
||||
if (node != null) {
|
||||
node.stop();
|
||||
node.destroy();
|
||||
} // end if
|
||||
if (launcher != null) {
|
||||
launcher.destroy();
|
||||
} // end if
|
||||
} // end method stopContribution
|
||||
|
||||
public String getContributionLocation(Class<?> testClass) {
|
||||
return ContributionLocationHelper.getContributionLocation(testConfiguration.getTestClass());
|
||||
} // end method getContributionLocation
|
||||
|
||||
public boolean checkError(String testName, Throwable ex){
|
||||
String expectedMessage = expectedErrorMessages.getProperty(testName);
|
||||
String receivedMessage = ex.getMessage();
|
||||
|
||||
if (expectedMessage == null){
|
||||
System.out.println("Null expected error message for test " + testName);
|
||||
System.out.println("Please add message to oasis-sca-tests-errors.properties");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (receivedMessage == null){
|
||||
System.out.println("Null received error message for test " + testName);
|
||||
return false;
|
||||
}
|
||||
|
||||
int messageStart = receivedMessage.indexOf("] - ");
|
||||
|
||||
if (messageStart < 0){
|
||||
System.out.println("Message separator not found for test " + testName);
|
||||
}
|
||||
|
||||
receivedMessage = receivedMessage.substring(messageStart + 4);
|
||||
|
||||
if (receivedMessage.startsWith(expectedMessage)){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
} // end class TuscanyRuntimeBridge
|
Loading…
Add table
Reference in a new issue