summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test')
-rw-r--r--sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactoryTestCase.java110
-rw-r--r--sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/handler/io/NodeDataWriterTestCase.java103
-rw-r--r--sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/loader/WebServiceBindingLoaderTestCase.java54
-rw-r--r--sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/resources/wsdl/hello_world.wsdl178
4 files changed, 445 insertions, 0 deletions
diff --git a/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactoryTestCase.java b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactoryTestCase.java
new file mode 100644
index 0000000000..dc6389ef93
--- /dev/null
+++ b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/assembly/WebServiceAssemblyFactoryTestCase.java
@@ -0,0 +1,110 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.apache.tuscany.binding.celtix.assembly;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.wsdl.Definition;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.binding.celtix.assembly.impl.WebServiceAssemblyFactoryImpl;
+import org.apache.tuscany.binding.celtix.assembly.impl.WebServiceBindingImpl;
+import org.apache.tuscany.core.loader.WSDLDefinitionRegistry;
+import org.apache.tuscany.model.assembly.AssemblyContext;
+import org.easymock.EasyMock;
+
+public class WebServiceAssemblyFactoryTestCase extends TestCase {
+
+
+ private void setupMocks(WSDLDefinitionRegistry reg,
+ List<Definition> wsdlList) {
+ EasyMock.reset(new Object[] {reg});
+
+ //FIXME pass the current ResourceLoader
+ reg.getDefinitionsForNamespace("http://objectweb.org/hello_world_soap_http", null);
+ EasyMock.expectLastCall().andReturn(wsdlList);
+
+ EasyMock.replay(new Object[] {reg});
+ }
+
+ public void testCreate() throws Exception {
+ WSDLDefinitionRegistry reg = EasyMock.createNiceMock(WSDLDefinitionRegistry.class);
+
+ WebServiceAssemblyFactoryImpl impl = new WebServiceAssemblyFactoryImpl();
+ WebServiceBinding bind = impl.createWebServiceBinding(reg);
+ assertNotNull("Did not create the binding", bind);
+ assertTrue("bind object wrong class: " + bind.getClass(),
+ bind instanceof WebServiceBindingImpl);
+
+ assertNull("Should be initialized with null WSDL", bind.getWSDLDefinition());
+ assertNull("Should be initialized with null port", bind.getWSDLPort());
+ assertNull("Should be initialized with null service", bind.getWSDLService());
+ assertNull("Should be initialized with null URI", bind.getURI());
+ assertNull("Should be initialized with null TypeHelper",
+ bind.getTypeHelper());
+ assertNull("Should be initialized with null ResourceLoader",
+ bind.getResourceLoader());
+
+ bind.setURI("http://objectweb.org/hello_world_soap_http");
+ bind.setPortURI("http://objectweb.org/hello_world_soap_http#SoapPort");
+
+ AssemblyContext modelContext = EasyMock.createNiceMock(AssemblyContext.class);
+
+ WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+ reader.setFeature("javax.wsdl.verbose", false);
+ URL url = getClass().getResource("/wsdl/hello_world.wsdl");
+ Definition definition = reader.readWSDL(url.toString());
+
+ List<Definition> wsdlList = new ArrayList<Definition>();
+
+ setupMocks(reg, wsdlList);
+ try {
+ bind.initialize(modelContext);
+ fail("Should have failed getting the wsdl");
+ } catch (IllegalArgumentException ex) {
+ //expected
+ }
+
+ setupMocks(reg, wsdlList);
+
+
+ wsdlList.add(definition);
+ bind = impl.createWebServiceBinding(reg);
+ bind.setURI("http://objectweb.org/hello_world_soap_http");
+ bind.setPortURI("http://objectweb.org/hello_world_soap_http#SoapPort");
+ bind.initialize(modelContext);
+
+ setupMocks(reg, wsdlList);
+
+ wsdlList.add(definition);
+ bind = impl.createWebServiceBinding(reg);
+ bind.setURI("http://objectweb.org/hello_world_soap_http");
+ bind.setPortURI("http://objectweb.org/hello_world_soap_http#FooPort");
+
+ try {
+ bind.initialize(modelContext);
+ fail("Should have failed finding the port");
+ } catch (IllegalArgumentException ex) {
+ //expected
+ }
+ }
+}
diff --git a/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/handler/io/NodeDataWriterTestCase.java b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/handler/io/NodeDataWriterTestCase.java
new file mode 100644
index 0000000000..be4d910069
--- /dev/null
+++ b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/handler/io/NodeDataWriterTestCase.java
@@ -0,0 +1,103 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.apache.tuscany.binding.celtix.handler.io;
+
+import java.net.URL;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+
+import commonj.sdo.helper.TypeHelper;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.objectweb.celtix.bindings.DataReader;
+import org.objectweb.celtix.bindings.DataWriter;
+import org.objectweb.celtix.bus.bindings.WSDLMetaDataCache;
+import org.objectweb.celtix.context.ObjectMessageContext;
+import org.objectweb.celtix.context.ObjectMessageContextImpl;
+
+
+
+public class NodeDataWriterTestCase extends TestCase {
+
+ private TypeHelper typeHelper;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ DataObjectUtil.initRuntime();
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ typeHelper = SDOUtil.createTypeHelper();
+ URL url = getClass().getResource("/wsdl/hello_world.wsdl");
+ new XSDHelperImpl(typeHelper).define(url.openStream(), null);
+ } finally {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
+
+
+ }
+
+ public void testWriteWrapper() throws Exception {
+ WSDLReader wreader = WSDLFactory.newInstance().newWSDLReader();
+ wreader.setFeature("javax.wsdl.verbose", false);
+ URL url = getClass().getResource("/wsdl/hello_world.wsdl");
+ Definition definition = wreader.readWSDL(url.toString());
+ Port port = definition.getService(new QName("http://objectweb.org/hello_world_soap_http",
+ "SOAPService")).getPort("SoapPort");
+
+ WSDLMetaDataCache wsdlCache = new WSDLMetaDataCache(definition,
+ port);
+
+
+ ResourceLoaderImpl loader = new ResourceLoaderImpl(getClass().getClassLoader());
+ SCADataBindingCallback callback = new SCADataBindingCallback(wsdlCache.getOperationInfo("greetMe"),
+ typeHelper,
+ loader,
+ false);
+
+ DataWriter<Node> writer = callback.createWriter(Node.class);
+ Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+ Element element = doc.createElement("ROOT");
+
+ ObjectMessageContext objCtx = new ObjectMessageContextImpl();
+ objCtx.setMessageObjects(new Object[] {"Hello"});
+ writer.writeWrapper(objCtx , false, element);
+
+ assertEquals("Value not written", "Hello", element.getFirstChild().getTextContent().trim());
+
+ DataReader<Node> reader = callback.createReader(Node.class);
+ reader.readWrapper(objCtx , true, element);
+
+ assertEquals("Hello", objCtx.getReturn());
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/loader/WebServiceBindingLoaderTestCase.java b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/loader/WebServiceBindingLoaderTestCase.java
new file mode 100644
index 0000000000..a27d866191
--- /dev/null
+++ b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/loader/WebServiceBindingLoaderTestCase.java
@@ -0,0 +1,54 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.apache.tuscany.binding.celtix.loader;
+
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.loader.LoaderContext;
+import org.apache.tuscany.core.loader.StAXLoaderRegistry;
+import org.apache.tuscany.model.assembly.AssemblyContext;
+import org.easymock.EasyMock;
+
+public class WebServiceBindingLoaderTestCase extends TestCase {
+
+ @SuppressWarnings("deprecation")
+ public void testLoad() throws Exception {
+
+ WebServiceBindingLoader loader = new WebServiceBindingLoader();
+ StAXLoaderRegistry reg = EasyMock.createNiceMock(StAXLoaderRegistry.class);
+ reg.getContext();
+ EasyMock.expectLastCall().andReturn(EasyMock.createNiceMock(AssemblyContext.class));
+ EasyMock.replay(reg);
+
+ loader.setRegistry(reg);
+
+ XMLStreamReader reader = EasyMock.createNiceMock(XMLStreamReader.class);
+ reader.getAttributeValue(null, "uri");
+ EasyMock.expectLastCall().andReturn("http://objectweb.org/hello_world_soap_http");
+ reader.getAttributeValue(null, "port");
+ EasyMock.expectLastCall().andReturn("SoapPort");
+ EasyMock.replay(reader);
+
+ LoaderContext loaderContext = new LoaderContext(null);
+
+ assertNotNull("Did not load binding", loader.load(reader, loaderContext));
+
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/resources/wsdl/hello_world.wsdl b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/resources/wsdl/hello_world.wsdl
new file mode 100644
index 0000000000..a1d40daf26
--- /dev/null
+++ b/sca-java-1.x/branches/java-M1/java/sca/bindings/binding.celtix/src/test/resources/wsdl/hello_world.wsdl
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ 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.
+ -->
+<wsdl:definitions name="HelloWorld" targetNamespace="http://objectweb.org/hello_world_soap_http"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://objectweb.org/hello_world_soap_http"
+ xmlns:x1="http://objectweb.org/hello_world_soap_http/types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema targetNamespace="http://objectweb.org/hello_world_soap_http/types"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://objectweb.org/hello_world_soap_http/types"
+ elementFormDefault="qualified">
+ <simpleType name="MyStringType">
+ <restriction base="string">
+ <maxLength value="30" />
+ </restriction>
+ </simpleType>
+
+ <element name="sayHi">
+ <complexType/>
+ </element>
+ <element name="sayHiResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMe">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="tns:MyStringType"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeOneWay">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="pingMe">
+ <complexType/>
+ </element>
+ <element name="pingMeResponse">
+ <complexType/>
+ </element>
+ <element name="faultDetail">
+ <complexType>
+ <sequence>
+ <element name="minor" type="short"/>
+ <element name="major" type="short"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="sayHiRequest">
+ <wsdl:part element="x1:sayHi" name="in"/>
+ </wsdl:message>
+ <wsdl:message name="sayHiResponse">
+ <wsdl:part element="x1:sayHiResponse" name="out"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeRequest">
+ <wsdl:part element="x1:greetMe" name="in"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeResponse">
+ <wsdl:part element="x1:greetMeResponse" name="out"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeOneWayRequest">
+ <wsdl:part element="x1:greetMeOneWay" name="in"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeRequest">
+ <wsdl:part name="in" element="x1:pingMe"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeResponse">
+ <wsdl:part name="out" element="x1:pingMeResponse"/>
+ </wsdl:message>
+ <wsdl:message name="pingMeFault">
+ <wsdl:part name="faultDetail" element="x1:faultDetail"/>
+ </wsdl:message>
+
+ <wsdl:portType name="Greeter">
+ <wsdl:operation name="sayHi">
+ <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+ <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMe">
+ <wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/>
+ <wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMeOneWay">
+ <wsdl:input message="tns:greetMeOneWayRequest" name="greetMeOneWayRequest"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="pingMe">
+ <wsdl:input name="pingMeRequest" message="tns:pingMeRequest"/>
+ <wsdl:output name="pingMeResponse" message="tns:pingMeResponse"/>
+ <wsdl:fault name="pingMeFault" message="tns:pingMeFault"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="sayHi">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="sayHiRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="sayHiResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMe">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="greetMeRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="greetMeResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMeOneWay">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="greetMeOneWayRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ </wsdl:operation>
+
+ <wsdl:operation name="pingMe">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ <wsdl:fault name="pingMeFault">
+ <soap:fault name="pingMeFault" use="literal"/>
+ </wsdl:fault>
+ </wsdl:operation>
+
+ </wsdl:binding>
+ <wsdl:service name="SOAPService">
+ <wsdl:port binding="tns:Greeter_SOAPBinding" name="SoapPort">
+ <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
+