tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From antel...@apache.org
Subject svn commit: r950041 - in /tuscany/otest/newlayout/tuscany-jms-test-runner: ./ src/ src/main/ src/main/resources/ src/test/ src/test/java/ src/test/resources/ src/test/tjava/ src/test/tjava/org/ src/test/tjava/org/apache/ src/test/tjava/org/apache/tusca...
Date Tue, 01 Jun 2010 12:41:19 GMT
Author: antelder
Date: Tue Jun  1 12:41:18 2010
New Revision: 950041

URL: http://svn.apache.org/viewvc?rev=950041&view=rev
Log:
Add testrunner for JMS testsuite

Added:
    tuscany/otest/newlayout/tuscany-jms-test-runner/
    tuscany/otest/newlayout/tuscany-jms-test-runner/pom.xml
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/main/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/main/resources/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/java/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/oasis-sca-tests.properties
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/tuscany-oasis-sca-tests-errors.properties
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyOSGiRuntimeBridge.java
    tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyRuntimeBridge.java

Added: tuscany/otest/newlayout/tuscany-jms-test-runner/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/otest/newlayout/tuscany-jms-test-runner/pom.xml?rev=950041&view=auto
==============================================================================
--- tuscany/otest/newlayout/tuscany-jms-test-runner/pom.xml (added)
+++ tuscany/otest/newlayout/tuscany-jms-test-runner/pom.xml Tue Jun  1 12:41:18 2010
@@ -0,0 +1,195 @@
+<?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-sca-jms-tests</artifactId>
+    <name>Apache Tuscany SCA Specification Tests for JMS Binding</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-launcher-equinox</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-deployment</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-runtime-axis2</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-binding-jms-runtime</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-all</artifactId>
+            <version>5.2.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-jetty</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-jms/Test_Client_BJM/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-jms/Test_Client_BJM/src/main/java"/>
+                                    <property name="to.dir" value="src/test/java"/>
+                                    <target name="copySourceDir"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.dir" value="../sca-assembly/Test_Client/src/main/java/testClient"/>
+                                    <property name="to.dir" value="src/test/java/testClient"/>
+                                    <target name="copySourceDir"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.file" value="../sca-assembly/Test_Client/src/main/java/client/BaseJAXWSTestRunner.java"/>
+                                    <property name="to.file" value="src/test/java/client/BaseJAXWSTestRunner.java"/>
+                                    <target name="copyFile"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.file" value="../sca-assembly/Test_Client/src/main/java/client/RuntimeBridge.java"/>
+                                    <property name="to.file" value="src/test/java/client/RuntimeBridge.java"/>
+                                    <target name="copyFile"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.file" value="../sca-assembly/Test_Client/src/main/java/client/TestConfiguration.java"/>
+                                    <property name="to.file" value="src/test/java/client/TestConfiguration.java"/>
+                                    <target name="copyFile"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.file" value="../sca-assembly/Test_Client/src/main/java/client/TuscanyRuntimeBridge.java"/>
+                                    <property name="to.file" value="src/test/java/client/TuscanyRuntimeBridge.java"/>
+                                    <target name="copyFile"/>
+                                </ant>
+                                <ant antfile="../build.xml">
+                                    <property name="from.file" value="../sca-assembly/Test_Client/src/main/resources/TestClient.wsdl"/>
+                                    <property name="to.file" value="src/main/resources/TestClient.wsdl"/>
+                                    <target name="copyFile"/>
+                                </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>

Added: tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/oasis-sca-tests.properties
URL: http://svn.apache.org/viewvc/tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/oasis-sca-tests.properties?rev=950041&view=auto
==============================================================================
--- tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/oasis-sca-tests.properties
(added)
+++ tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/oasis-sca-tests.properties
Tue Jun  1 12:41:18 2010
@@ -0,0 +1,30 @@
+# 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
+#org.oasis.sca.tests.assembly.runtime_bridge=org.apache.tuscany.sca.otest.TuscanyOSGiRuntimeBridge
+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-jms/%1/target/%1.zip
+

Added: tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/tuscany-oasis-sca-tests-errors.properties
URL: http://svn.apache.org/viewvc/tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/tuscany-oasis-sca-tests-errors.properties?rev=950041&view=auto
==============================================================================
--- tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/tuscany-oasis-sca-tests-errors.properties
(added)
+++ tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/resources/tuscany-oasis-sca-tests-errors.properties
Tue Jun  1 12:41:18 2010
@@ -0,0 +1,17 @@
+# 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. 
+

Added: tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyOSGiRuntimeBridge.java
URL: http://svn.apache.org/viewvc/tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyOSGiRuntimeBridge.java?rev=950041&view=auto
==============================================================================
--- tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyOSGiRuntimeBridge.java
(added)
+++ tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyOSGiRuntimeBridge.java
Tue Jun  1 12:41:18 2010
@@ -0,0 +1,150 @@
+/*
+ * 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 static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+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;
+    protected Properties expectedErrorMessages;
+
+    public TuscanyOSGiRuntimeBridge() {
+        // read test error mapping
+        expectedErrorMessages = new Properties();
+        try {
+            InputStream propertiesStream = this.getClass().getResourceAsStream("/tuscany-oasis-sca-tests-errors.properties");
+            expectedErrorMessages.load(propertiesStream);
+        } catch (IOException e) {   
+            System.out.println("Unable to read oasis-sca-tests-errors.properties file");
+        } 
+    }
+
+    public boolean startContribution(String compositeName, 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,contributionNames);
+            for (int i = 0; i < contributions.length; i++) {
+                contributions[i] = new Contribution(contributionNames[i], contributionURIs[i]);
+            } // end for
+
+            node = launcher.createNode(compositeName, 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, String[] contributionNames)
throws Exception {
+        String[] locations = new String[contributionNames.length];
+
+        if (locations != null && contributionLocation != null) {
+
+            for (int i = 0; i < locations.length; i++) {
+                String aLocation = contributionLocation.replaceAll("%1", contributionNames[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();
+        } // end if
+        if (launcher != null) {
+            launcher.destroy();
+        } // end if
+    } // end method stopContribution
+
+    
+    public void checkError(String testName, Throwable ex) throws Throwable {       
+        String expectedMessage = expectedErrorMessages.getProperty(testName);
+        String receivedMessage = ex.getMessage();
+        
+        if (expectedMessage == null){
+            fail("Null expected error message for test " + testName + 
+                 "Please add message to oasis-sca-tests-errors.properties");
+        }
+        
+        if (receivedMessage == null){
+            fail("Null received error message for test " + testName);
+        }
+        
+        int messageStart = receivedMessage.indexOf("] - ");
+        
+        if (messageStart < 0){
+            fail("Message separator not found for test " + testName);
+        }
+        
+        receivedMessage = receivedMessage.substring(messageStart + 4);
+        
+        assertEquals( expectedMessage, receivedMessage );
+        
+        return;
+    }   
+
+} // end class TuscanyRuntimeBridge

Added: tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyRuntimeBridge.java
URL: http://svn.apache.org/viewvc/tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyRuntimeBridge.java?rev=950041&view=auto
==============================================================================
--- tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyRuntimeBridge.java
(added)
+++ tuscany/otest/newlayout/tuscany-jms-test-runner/src/test/tjava/org/apache/tuscany/sca/otest/TuscanyRuntimeBridge.java
Tue Jun  1 12:41:18 2010
@@ -0,0 +1,217 @@
+/*
+ * 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 static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+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.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+import testClient.TestException_Exception;
+import client.RuntimeBridge;
+
+/**
+ * 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;
+
+    public TuscanyRuntimeBridge() {
+        // read test error mapping
+        expectedErrorMessages = new Properties();
+        try {
+            InputStream propertiesStream = this.getClass().getResourceAsStream("/tuscany-oasis-sca-tests-errors.properties");
+            expectedErrorMessages.load(propertiesStream);
+        } catch (IOException e) {   
+            System.out.println("Unable to read oasis-sca-tests-errors.properties file");
+        } 
+    }
+
+    public boolean startContribution(String compositeName, 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, contributionNames);
+            for (int i = 0; i < contributions.length; i++) {
+                contributions[i] = new Contribution(contributionNames[i], contributionURIs[i]);
+            } // end for
+
+            node = launcher.createNode(compositeName, contributions);
+            // Start the node
+            node.start();
+            
+            // For debugging 
+            // print out the composites that have been read in success cases
+            // System.out.println(((NodeImpl)node).dumpDomainComposite());
+        } 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, String[] contributionNames)
throws Exception {
+        String[] locations = new String[contributionNames.length];
+
+        if (locations != null && contributionLocation != null) {
+
+            for (int i = 0; i < locations.length; i++) {
+                String aLocation = contributionLocation.replaceAll("%1", contributionNames[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();
+        } // end if
+        if (launcher != null) {
+            launcher.destroy();
+        } // end if
+    } // end method stopContribution
+    
+    public void checkError(String testName, Throwable ex) throws Throwable { 
+              
+        String expectedMessage = expectedErrorMessages.getProperty(testName);
+        String receivedMessage = getErrorMessage(ex);//ex.getMessage();
+        
+        if (expectedMessage == null){
+            writeMissingMessage(testName, ex);
+            fail("Null expected error message for test " + testName + 
+                 "Please add message to oasis-sca-tests-errors.properties");
+        } // end if
+        
+        if (receivedMessage == null){
+            ex.printStackTrace();
+            fail("Null received error message for test " + testName);
+        } // end if
+
+        if (expectedMessage.startsWith("*")) {
+            // allow using * to ignore a message comparison
+            return;
+        }
+        
+        // Deal with the case where the message has variable parts within it
+        // marked with the characters ***. Here we tokenize the expected string 
+        // and make sure all the individual parts are present in the results string
+        String expectedMessageParts[] = expectedMessage.split("\\*\\*\\*");
+        
+        if (expectedMessageParts.length > 1){
+            int foundParts = 0;
+            for(int i = 0; i < expectedMessageParts.length; i++){
+                if (receivedMessage.indexOf(expectedMessageParts[i]) > -1 ){
+                    foundParts++;
+                }
+            }
+            
+            if (foundParts == expectedMessageParts.length){
+                return;
+            }
+        }
+
+        
+        // Deal with the case where the end of the message is variable (eg contains absolute
filenames) 
+        // and where the only relevant part is the start of the message - in this case the
expected
+        // message only contains the stem section which is unchanging...
+        if( receivedMessage.length() > expectedMessage.length() ) {
+            // Truncate the received message to the length of the expected message
+            receivedMessage = receivedMessage.substring(0, expectedMessage.length() );
+        } // end if
+
+        if (!expectedMessage.equals(receivedMessage)) {
+            writeIncorrectMessage(testName, expectedMessage, receivedMessage);
+        }
+        
+        assertEquals( expectedMessage, receivedMessage );
+        
+        return;
+       
+    }
+
+    protected void writeMissingMessage(String testName, Throwable ex) {
+        try {
+            BufferedWriter out = new BufferedWriter(new FileWriter("target/OTestMissingMsgs.txt",
true));
+            out.write(testName + "=*");
+            out.newLine();
+            out.close();
+        } catch (IOException e) {
+        } 
+    }
+
+    protected void writeIncorrectMessage(String testName, String expected, String received)
{
+        try {
+            BufferedWriter out = new BufferedWriter(new FileWriter("target/OTestIncorrectMsgs.txt",
true));
+            out.write(testName); out.newLine();
+            out.write("    " + expected); out.newLine();
+            out.write("    " + received); out.newLine();
+            out.close();
+        } catch (IOException e) {
+        } 
+    }
+
+    protected String getErrorMessage(Throwable ex) {
+        String errorMessage = null;
+        
+        if (ex instanceof TestException_Exception) {
+            TestException_Exception te = (TestException_Exception) ex;
+            errorMessage = te.getFaultInfo().getMessage();
+        } else {
+            errorMessage = ex.getMessage();
+        }
+        
+        return errorMessage;
+    }
+} // end class TuscanyRuntimeBridge



Mime
View raw message