You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/01/10 12:10:49 UTC

svn commit: r1057151 - in /camel/trunk/tests/camel-itest/src/test: java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml

Author: davsclaus
Date: Mon Jan 10 11:10:49 2011
New Revision: 1057151

URL: http://svn.apache.org/viewvc?rev=1057151&view=rev
Log:
Added test based on user forum issue

Added:
    camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java
      - copied, changed from r1057139, camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java
    camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml
      - copied, changed from r1057139, camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CamelGreeterTest-context.xml

Copied: camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java (from r1057139, camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java?p2=camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java&p1=camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java&r1=1057139&r2=1057151&rev=1057151&view=diff
==============================================================================
--- camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java (original)
+++ camel/trunk/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java Mon Jan 10 11:10:49 2011
@@ -16,19 +16,10 @@
  */
 package org.apache.camel.itest.greeter;
 
-import java.util.List;
-import javax.xml.ws.Endpoint;
-
-import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.cxf.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
@@ -36,56 +27,33 @@ import org.springframework.test.context.
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
 @ContextConfiguration
-public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
-    private static final transient Log LOG = LogFactory.getLog(CamelGreeterTest.class);
-    
-    private static Endpoint endpoint;
-    @Autowired
-    protected CamelContext camelContext;
+public class CxfToJmsInOutTest extends AbstractJUnit4SpringContextTests {
 
-    @EndpointInject(uri = "mock:resultEndpoint")
-    protected MockEndpoint resultEndpoint;
+    @Autowired
+    protected ProducerTemplate template;
 
-    @BeforeClass
-    public static void startServer() throws Exception {
-        // Start the Greeter Server
-        Object implementor = new GreeterImpl();
-        String address = "http://localhost:9000/SoapContext/SoapPort";
-        endpoint = Endpoint.publish(address, implementor);
-        LOG.info("The WS endpoint is published! ");
-    }
+    @EndpointInject(uri = "mock:cxf.input")
+    protected MockEndpoint inputEndpoint;
 
-    @AfterClass
-    public static void stopServer() throws Exception {
-        // Shutdown the Greeter Server
-        if (endpoint != null) {
-            endpoint.stop();
-            endpoint = null;
-        }
-    }
+    @EndpointInject(uri = "mock:jms.output")
+    protected MockEndpoint outputEndpoint;
 
     @Test
-    public void testMocksAreValid() throws Exception {
-        assertNotNull(camelContext);
-        assertNotNull(resultEndpoint);
-
-        ProducerTemplate template = camelContext.createProducerTemplate();
-        template.sendBodyAndHeader("jms:requestQueue", "Willem", CxfConstants.OPERATION_NAME, "greetMe");
-
-        // Sleep a while and wait for the message whole processing
-        Thread.sleep(4000);
-        template.stop();
-
-        MockEndpoint.assertIsSatisfied(camelContext);
-        List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        assertEquals("Should get one message", list.size(), 1);
-        for (Exchange exchange : list) {
-            String result = (String) exchange.getIn().getBody();
-            assertEquals("Get the wrong result ", result, "Hello Willem");
-        }
+    public void testCxfToJmsInOut() throws Exception {
+        assertNotNull(template);
+        assertNotNull(inputEndpoint);
+        assertNotNull(outputEndpoint);
+
+        inputEndpoint.expectedBodiesReceived("Willem");
+        outputEndpoint.expectedBodiesReceived("Hello Willem");
+
+        String out = template.requestBodyAndHeader("cxf://bean:serviceEndpoint", "Willem", CxfConstants.OPERATION_NAME, "greetMe", String.class);
+        assertEquals("Hello Willem", out);
+
+        inputEndpoint.assertIsSatisfied();
+        outputEndpoint.assertIsSatisfied();
     }
 
 }

Copied: camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml (from r1057139, camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CamelGreeterTest-context.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml?p2=camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml&p1=camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CamelGreeterTest-context.xml&r1=1057139&r2=1057151&rev=1057151&view=diff
==============================================================================
--- camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CamelGreeterTest-context.xml (original)
+++ camel/trunk/tests/camel-itest/src/test/resources/org/apache/camel/itest/greeter/CxfToJmsInOutTest-context.xml Mon Jan 10 11:10:49 2011
@@ -18,46 +18,53 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:cxf="http://camel.apache.org/schema/cxf"
-
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
 
- <import resource="classpath:META-INF/cxf/cxf.xml"/>
- <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
- <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />
-
- <cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:9000/SoapContext/SoapPort"
-            wsdlURL="wsdl/hello_world.wsdl"
-    		serviceClass="org.apache.hello_world_soap_http.Greeter"
-    		endpointName="s:SoapOverHttp"
-    		serviceName="s:SOAPService"
-    	    xmlns:s="http://apache.org/hello_world_soap_http">
-    <cxf:properties>
-      <entry key="setDefaultBus" value="false"/>
-    </cxf:properties>
- </cxf:cxfEndpoint>
+    <import resource="classpath:META-INF/cxf/cxf.xml"/>
+    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
+    <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml"/>
+
+    <cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:9000/SoapContext/SoapPort"
+                     wsdlURL="wsdl/hello_world.wsdl"
+                     serviceClass="org.apache.hello_world_soap_http.Greeter"
+                     endpointName="s:SoapOverHttp"
+                     serviceName="s:SOAPService"
+                     xmlns:s="http://apache.org/hello_world_soap_http">
+        <cxf:properties>
+            <entry key="setDefaultBus" value="false"/>
+        </cxf:properties>
+    </cxf:cxfEndpoint>
 
-  <bean id="prepareRequest" class="org.apache.camel.itest.greeter.PrepareRequest"/>
-  <bean id="prepareResponse" class="org.apache.camel.itest.greeter.PrepareResponse"/>
+    <bean id="prepareRequest" class="org.apache.camel.itest.greeter.PrepareRequest"/>
+    <bean id="prepareResponse" class="org.apache.camel.itest.greeter.PrepareResponse"/>
 
     <bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="brokerURL" value="vm://localhost?broker.persistent=false"/>
     </bean>
 
-  <!-- START SNIPPET: example -->
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route>
-        <from uri="jms:requestQueue"/>
-        <process ref="prepareRequest"/>
-        <to uri="cxf://bean:serviceEndpoint"/>
-        <process ref="prepareResponse"/>
-        <to uri="jms:responseQueue"/>
-        <to uri="mock:resultEndpoint"/>
-    </route>
-  </camelContext>
-  <!-- END SNIPPET: example -->
+    <camelContext xmlns="http://camel.apache.org/schema/spring">
+
+        <route>
+            <from uri="cxf://bean:serviceEndpoint"/>
+            <to uri="log:input"/>
+            <to uri="mock:cxf.input"/>
+            <to uri="jms:queue:bridge.output?replyTo=output.reply"/>
+            <to uri="log:reply"/>
+        </route>
+
+        <route>
+            <from uri="jms:queue:bridge.output"/>
+            <to uri="log:jms"/>
+            <setBody>
+                <simple>Hello ${body}</simple>
+            </setBody>
+            <to uri="mock:jms.output"/>
+        </route>
+
+    </camelContext>
 
 </beans>