Author: gnodet
Date: Fri Sep 22 10:24:46 2006
New Revision: 449015

URL: http://svn.apache.org/viewvc?view=rev&rev=449015
Log:
Improve junit tests

Added:
    
incubator/servicemix/trunk/servicemix-http/src/test/resources/org/apache/servicemix/http/bound-wsdl.wsdl
Modified:
    
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpManagedTest.java
    
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpProviderTest.java
    
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpWsdlTest.java

Modified: 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpManagedTest.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpManagedTest.java?view=diff&rev=449015&r1=449014&r2=449015
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpManagedTest.java
 (original)
+++ 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpManagedTest.java
 Fri Sep 22 10:24:46 2006
@@ -41,6 +41,14 @@
 
 public class HttpManagedTest extends TestCase {
 
+    private Server server;
+    
+    protected void shutDown() throws Exception {
+        if (server != null) {
+            server.stop();
+        }
+    }
+    
     public void test() throws Exception {
         ContextHandler context = new ContextHandler();
         context.setContextPath("/test");
@@ -67,16 +75,16 @@
 
         SelectChannelConnector connector = new SelectChannelConnector();
         connector.setHost("localhost");
-        connector.setPort(8080);
+        connector.setPort(8190);
         
-        Server server = new Server();
+        server = new Server();
         server.setConnectors(new Connector[] { connector });
         server.setHandler(handlers);
         server.start();
         
         System.err.println("Started");
         
-        PostMethod post = new 
PostMethod("http://localhost:8080/test/jbi/Service/";);
+        PostMethod post = new 
PostMethod("http://localhost:8190/test/jbi/Service/";);
         post.setRequestEntity(new StringRequestEntity("<soap:Envelope 
xmlns:soap='http://www.w3.org/2003/05/soap-envelope'><soap:Body><hello>world</hello></soap:Body></soap:Envelope>"));
         new HttpClient().executeMethod(post);
         if (post.getStatusCode() != 200) {

Modified: 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpProviderTest.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpProviderTest.java?view=diff&rev=449015&r1=449014&r2=449015
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpProviderTest.java
 (original)
+++ 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpProviderTest.java
 Fri Sep 22 10:24:46 2006
@@ -24,17 +24,18 @@
 import javax.jbi.messaging.ExchangeStatus;
 import javax.jbi.messaging.InOut;
 import javax.jbi.messaging.RobustInOnly;
+import javax.jbi.messaging.MessageExchange.Role;
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
 
 import junit.framework.TestCase;
 
 import org.apache.servicemix.client.DefaultServiceMixClient;
-import org.apache.servicemix.components.http.HttpConnector;
 import org.apache.servicemix.components.util.EchoComponent;
 import org.apache.servicemix.jbi.container.ActivationSpec;
 import org.apache.servicemix.jbi.container.JBIContainer;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.soap.SoapHelper;
 import org.apache.servicemix.tck.Receiver;
 import org.apache.servicemix.tck.ReceiverComponent;
 
@@ -70,10 +71,16 @@
                container.activateComponent(asReceiver);
 
                // Add the http receiver
-               HttpConnector connector = new HttpConnector("localhost", 8192);
-               connector.setDefaultInOut(false);
+        HttpSpringComponent connector = new HttpSpringComponent();
+        HttpEndpoint endpoint = new HttpEndpoint();
+        endpoint.setRole(Role.CONSUMER);
+        endpoint.setLocationURI("http://localhost:8192/";);
+        endpoint.setSoap(false);
+        endpoint.setDefaultMep(SoapHelper.IN_ONLY);
+        endpoint.setService(new QName("test", "receiver"));
+        endpoint.setEndpoint("BC");
+        connector.setEndpoints(new HttpEndpoint[] { endpoint });
                ActivationSpec asConnector = new ActivationSpec("connector", 
connector);
-               asConnector.setDestinationService(new QName("test", 
"receiver"));
                container.activateComponent(asConnector);
 
                // Start container
@@ -125,11 +132,17 @@
                container.activateComponent(asReceiver);
 
                // Add the http receiver
-               HttpConnector connector = new HttpConnector("localhost", 8192);
-               connector.setDefaultInOut(true);
-               ActivationSpec asConnector = new ActivationSpec("connector", 
connector);
-               asConnector.setDestinationService(new QName("test", "echo"));
-               container.activateComponent(asConnector);
+        HttpSpringComponent connector = new HttpSpringComponent();
+        HttpEndpoint endpoint = new HttpEndpoint();
+        endpoint.setRole(Role.CONSUMER);
+        endpoint.setLocationURI("http://localhost:8192/";);
+        endpoint.setSoap(false);
+        endpoint.setDefaultMep(SoapHelper.IN_OUT);
+        endpoint.setService(new QName("test", "echo"));
+        endpoint.setEndpoint("BC");
+        connector.setEndpoints(new HttpEndpoint[] { endpoint });
+        ActivationSpec asConnector = new ActivationSpec("connector", 
connector);
+        container.activateComponent(asConnector);
 
                // Start container
                container.start();

Modified: 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpWsdlTest.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpWsdlTest.java?view=diff&rev=449015&r1=449014&r2=449015
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpWsdlTest.java
 (original)
+++ 
incubator/servicemix/trunk/servicemix-http/src/test/java/org/apache/servicemix/http/HttpWsdlTest.java
 Fri Sep 22 10:24:46 2006
@@ -19,7 +19,15 @@
 import javax.jbi.servicedesc.ServiceEndpoint;
 import javax.servlet.http.HttpServletResponse;
 import javax.wsdl.Definition;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
+import javax.wsdl.Port;
 import javax.wsdl.PortType;
+import javax.wsdl.Service;
+import javax.wsdl.WSDLException;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
@@ -54,18 +62,11 @@
         }
     }
 
-    public void testWithNonStandaloneWsdl() throws Exception {
+    protected void testWSDL(final Definition def, int portNumber) throws 
Exception {
         // Add a receiver component
         ActivationSpec asEcho = new ActivationSpec("echo", new EchoComponent() 
{
             public Document getServiceDescription(ServiceEndpoint endpoint) {
                 try {
-                    Definition def = WSDLFactory.newInstance().newDefinition();
-                    PortType type = def.createPortType();
-                    type.setUndefined(false);
-                    type.setQName(new QName("http://porttype.test";, 
"MyConsumerInterface"));
-                    def.setTargetNamespace("http://porttype.test";);
-                    def.addNamespace("tns", "http://porttype.test";);
-                    def.addPortType(type);
                     Document doc = 
WSDLFactory.newInstance().newWSDLWriter().getDocument(def);
                     return doc;
                 } catch (Exception e) {
@@ -82,7 +83,8 @@
         ep.setService(new QName("http://test";, "MyConsumerService"));
         ep.setEndpoint("myConsumer");
         ep.setRoleAsString("consumer");
-        ep.setLocationURI("http://localhost:8195/Service";);
+        ep.setLocationURI("http://localhost:"; + portNumber + "/Service");
+        ep.setSoap(true);
         HttpSpringComponent http = new HttpSpringComponent();
         http.setEndpoints(new HttpEndpoint[] { ep });
         container.activateComponent(http, "HttpWsdlTest");
@@ -90,19 +92,85 @@
         // Start container
         container.start();
 
-        GetMethod get = new GetMethod("http://localhost:8195/Service/?wsdl";);
+        GetMethod get = new GetMethod("http://localhost:"; + portNumber + 
"/Service/?wsdl");
         int state = new HttpClient().executeMethod(get);
         assertEquals(HttpServletResponse.SC_OK, state);
         Document doc = (Document) new SourceTransformer().toDOMNode(new 
StringSource(get.getResponseBodyAsString()));
+        get.releaseConnection();
         
         // Test WSDL
         WSDLFactory factory = WSDLFactory.newInstance();
         WSDLReader reader = factory.newWSDLReader();
-        Definition def;
-        def = reader.readWSDL("http://localhost:8195/Service/?wsdl";, doc);
-        assertNotNull(def);
-        assertNotNull(def.getImports());
-        assertEquals(1, def.getImports().size());
+        Definition definition;
+        definition = reader.readWSDL("http://localhost:"; + portNumber + 
"/Service/?wsdl", doc);
+        assertNotNull(definition);
+        assertNotNull(definition.getImports());
+        assertEquals(1, definition.getImports().size());
+        WSDLFactory.newInstance().newWSDLWriter().writeWSDL(definition, 
System.err);
+        Service svc = (Service) 
definition.getServices().values().iterator().next();
+        Port port = (Port) svc.getPorts().values().iterator().next();
+    }
+    
+    protected Definition createDefinition(boolean rpc) throws WSDLException {
+        Definition def = WSDLFactory.newInstance().newDefinition();
+        def.setTargetNamespace("http://porttype.test";);
+        def.addNamespace("tns", "http://porttype.test";);
+        def.addNamespace("xsd", "http://www.w3.org/2000/10/XMLSchema";);
+        def.addNamespace("w", "uri:hello");
+        Message inMsg = def.createMessage();
+        inMsg.setQName(new QName("http://porttype.test";, "InMessage"));
+        inMsg.setUndefined(false);
+        Part part1 = def.createPart();
+        part1.setName("part1");
+        if (rpc) {
+            part1.setTypeName(new QName("http://www.w3.org/2000/10/XMLSchema";, 
"int"));
+        } else {
+            part1.setElementName(new QName("uri:hello", "world"));
+        }
+        inMsg.addPart(part1);
+        Part part2 = def.createPart();
+        part2.setName("part2");
+        part2.setElementName(new QName("uri:hello", "world"));
+        inMsg.addPart(part2);
+        def.addMessage(inMsg);
+        Message outMsg = def.createMessage();
+        outMsg.setQName(new QName("http://porttype.test";, "OutMessage"));
+        outMsg.setUndefined(false);
+        Part part3 = def.createPart();
+        part3.setName("part3");
+        part3.setElementName(new QName("uri:hello", "world"));
+        outMsg.addPart(part3);
+        def.addMessage(outMsg);
+        PortType type = def.createPortType();
+        type.setUndefined(false);
+        type.setQName(new QName("http://porttype.test";, 
"MyConsumerInterface"));
+        Operation op = def.createOperation();
+        op.setName("Hello");
+        Input in = def.createInput();
+        in.setMessage(inMsg);
+        op.setInput(in);
+        op.setUndefined(false);
+        Output out = def.createOutput();
+        out.setMessage(outMsg);
+        op.setOutput(out);
+        type.addOperation(op);
+        def.addPortType(type);
+        WSDLFactory.newInstance().newWSDLWriter().writeWSDL(def, System.err);
+        return def;
+    }
+    
+    public void testWithNonStandaloneWsdlDoc() throws Exception {
+        testWSDL(createDefinition(false), 8192);
+    }
+    
+    public void testWithNonStandaloneWsdlRpc() throws Exception {
+        testWSDL(createDefinition(true), 8193);
+    }
+    
+    public void testWithExistingBinding() throws Exception {
+        String uri = getClass().getResource("bound-wsdl.wsdl").toString();
+        Definition def = 
WSDLFactory.newInstance().newWSDLReader().readWSDL(uri);
+        testWSDL(def, 8194);
     }
     
     public void testExternalNonStandaloneWsdl() throws Exception {
@@ -124,6 +192,7 @@
         int state = new HttpClient().executeMethod(get);
         assertEquals(HttpServletResponse.SC_OK, state);
         Document doc = (Document) new SourceTransformer().toDOMNode(new 
StringSource(get.getResponseBodyAsString()));
+        get.releaseConnection();
         
         // Test WSDL
         WSDLFactory factory = WSDLFactory.newInstance();

Added: 
incubator/servicemix/trunk/servicemix-http/src/test/resources/org/apache/servicemix/http/bound-wsdl.wsdl
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-http/src/test/resources/org/apache/servicemix/http/bound-wsdl.wsdl?view=auto&rev=449015
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-http/src/test/resources/org/apache/servicemix/http/bound-wsdl.wsdl
 (added)
+++ 
incubator/servicemix/trunk/servicemix-http/src/test/resources/org/apache/servicemix/http/bound-wsdl.wsdl
 Fri Sep 22 10:24:46 2006
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<wsdl:definitions targetNamespace="http://porttype.test"; 
xmlns:tns="http://porttype.test"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";

+  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";>

+  <wsdl:types>

+    <schema targetNamespace="http://porttype.test";

+      xmlns="http://www.w3.org/2000/10/XMLSchema";>

+      <element name="HelloRequest">

+        <complexType>

+          <all>

+            <element name="text" type="string"/>

+          </all>

+        </complexType>

+      </element>

+      <element name="HelloResponse">

+        <complexType>

+          <all>

+            <element name="text" type="string"/>

+          </all>

+        </complexType>

+      </element>

+      <element name="HelloHeader">

+        <complexType>

+          <all>

+            <element name="id" type="string"/>

+          </all>

+        </complexType>

+      </element>

+    </schema>

+  </wsdl:types>

+  

+  <wsdl:message name="InMessage">

+    <wsdl:part name="body" element="tns:HelloRequest"/>

+    <wsdl:part name="header1" element="tns:HelloHeader"/>

+  </wsdl:message>

+  <wsdl:message name="OutMessage">

+    <wsdl:part name="body" element="tns:HelloResponse"/>

+  </wsdl:message>

+  <wsdl:portType name="MyConsumerInterface">

+    <wsdl:operation name="Hello">

+      <wsdl:input message="tns:InMessage"/>

+      <wsdl:output message="tns:OutMessage"/>

+    </wsdl:operation>

+  </wsdl:portType>

+  <wsdl:binding name="myConsumerBinding" type="tns:MyConsumerInterface">

+    <wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http"/>

+    <wsdl:operation name="Hello">

+      <wsdlsoap:operation soapAction=""/>

+      <wsdl:input>

+        <wsdlsoap:body use="literal" parts="body"/>

+        <wsdlsoap:header use="literal" message="tns:HelloRequest" 
part="header1"/>

+      </wsdl:input>

+      <wsdl:output>

+        <wsdlsoap:body use="literal"/>

+      </wsdl:output>

+    </wsdl:operation>

+  </wsdl:binding>

+</wsdl:definitions>



Reply via email to