You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2007/05/10 19:37:28 UTC

svn commit: r536946 - /activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java

Author: jstrachan
Date: Thu May 10 10:37:24 2007
New Revision: 536946

URL: http://svn.apache.org/viewvc?view=rev&rev=536946
Log:
tidied up the test case to make it a bit simpler to read & to reuse the MockEndpoint goodness

Modified:
    activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java

Modified: activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java?view=diff&rev=536946&r1=536945&r2=536946
==============================================================================
--- activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java (original)
+++ activemq/camel/trunk/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteTest.java Thu May 10 10:37:24 2007
@@ -17,118 +17,78 @@
  */
 package org.apache.camel.component.jms;
 
-import junit.framework.TestCase;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
-import org.apache.camel.Exchange;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.util.ProducerCache;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.camel.component.mock.MockEndpoint;
 
 import javax.jms.ConnectionFactory;
-import javax.jms.Message;
-import javax.jms.ObjectMessage;
-import javax.jms.TextMessage;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
 /**
  * @version $Revision$
  */
-public class JmsRouteTest extends TestCase {
-    private static final transient Log log = LogFactory.getLog(JmsRouteTest.class);
-    protected JmsExchange receivedExchange;
-    protected CamelContext container = new DefaultCamelContext();
-    protected CountDownLatch latch = new CountDownLatch(1);
-    protected Endpoint<JmsExchange> endpoint;
-    protected ProducerCache<JmsExchange> client = new ProducerCache<JmsExchange>();
+public class JmsRouteTest extends ContextTestSupport {
+    private MockEndpoint resultEndpoint;
 
     public void testJmsRouteWithTextMessage() throws Exception {
         String expectedBody = "Hello there!";
+
+        resultEndpoint.expectedBodiesReceived(expectedBody);
+        resultEndpoint.message(0).header("cheese").isEqualTo(123);
+
         sendExchange(expectedBody);
 
-        Object body = assertReceivedValidExchange(TextMessage.class);
-        assertEquals("body", expectedBody, body);
+        resultEndpoint.assertIsSatisfied();
     }
 
     public void testJmsRouteWithObjectMessage() throws Exception {
         PurchaseOrder expectedBody = new PurchaseOrder("Beer", 10);
 
+        resultEndpoint.expectedBodiesReceived(expectedBody);
+        resultEndpoint.message(0).header("cheese").isEqualTo(123);
+
         sendExchange(expectedBody);
 
-        Object body = assertReceivedValidExchange(ObjectMessage.class);
-        assertEquals("body", expectedBody, body);
+        resultEndpoint.assertIsSatisfied();
     }
 
     protected void sendExchange(final Object expectedBody) {
-        client.send(endpoint, new Processor() {
-            public void process(Exchange exchange) {
-                // now lets fire in a message
-                exchange.getIn().setBody(expectedBody);
-                exchange.getIn().setHeader("cheese", 123);
-            }
-        });
+        template.sendBody("activemq:queue:test.a", expectedBody, "cheese", 123);
     }
 
-    protected Object assertReceivedValidExchange(Class type) throws Exception {
-        // lets wait on the message being received
-        boolean received = latch.await(20, TimeUnit.SECONDS);
-        assertTrue("Did not receive the message!", received);
-
-        assertNotNull(receivedExchange);
-        JmsMessage receivedMessage = receivedExchange.getIn();
-
-        assertEquals("cheese header", 123, receivedMessage.getHeader("cheese"));
-        Object body = receivedMessage.getBody();
-        log.debug("Received body: " + body);
-        Message jmsMessage = receivedMessage.getJmsMessage();
-        assertTrue("Expected an instance of " + type.getName() + " but was " + jmsMessage, type.isInstance(jmsMessage));
-
-        log.debug("Received JMS message: " + jmsMessage);
-        return body;
-    }
 
     @Override
     protected void setUp() throws Exception {
-        // lets configure some componnets
+        super.setUp();
+
+        resultEndpoint = (MockEndpoint) context.getEndpoint("mock:result");
+    }
+
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext camelContext = super.createCamelContext();
+
         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
-        container.addComponent("activemq", jmsComponentClientAcknowledge(connectionFactory));
+        camelContext.addComponent("activemq", jmsComponentClientAcknowledge(connectionFactory));
+
+        return camelContext;
+    }
 
-        // lets add some routes
-        container.addRoutes(new RouteBuilder() {
-            public void configure() {
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() throws Exception {
                 from("activemq:queue:test.a").to("activemq:queue:test.b");
-                from("activemq:queue:test.b").process(new Processor() {
-                    public void process(Exchange e) {
-                        System.out.println("Received exchange: " + e.getIn());
-                        receivedExchange = (JmsExchange) e;
-                        latch.countDown();
-                    }
-                });
-                
+                from("activemq:queue:test.b").to("mock:result");
+
                 JmsEndpoint endpoint1 = (JmsEndpoint) endpoint("activemq:topic:quote.IONA");
                 endpoint1.getConfiguration().setTransacted(true);
                 from(endpoint1).to("mock:transactedClient");
-                
+
                 JmsEndpoint endpoint2 = (JmsEndpoint) endpoint("activemq:topic:quote.IONA");
                 endpoint1.getConfiguration().setTransacted(true);
                 from(endpoint2).to("mock:nonTrasnactedClient");
             }
-        });
-        endpoint = container.getEndpoint("activemq:queue:test.a");
-        assertNotNull("No endpoint found!", endpoint);
-
-        container.start();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        client.stop();
-        container.stop();
+        };
     }
 }