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/02/23 16:50:51 UTC

svn commit: r1073795 - /camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java

Author: davsclaus
Date: Wed Feb 23 15:50:51 2011
New Revision: 1073795

URL: http://svn.apache.org/viewvc?rev=1073795&view=rev
Log:
Added test for exchange completed event

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java   (contents, props changed)
      - copied, changed from r1073773, camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeSentTest.java

Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java (from r1073773, camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeSentTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeSentTest.java&r1=1073773&r2=1073795&rev=1073795&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeSentTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java Wed Feb 23 15:50:51 2011
@@ -17,19 +17,21 @@
 package org.apache.camel.management;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.EventObject;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.management.event.ExchangeSentEvent;
+import org.apache.camel.management.event.ExchangeCompletedEvent;
 
 /**
  * @version 
  */
-public class EventNotifierExchangeSentTest extends ContextTestSupport {
+public class EventNotifierExchangeCompletedTest extends ContextTestSupport {
 
     private static List<EventObject> events = new ArrayList<EventObject>();
 
@@ -48,77 +50,49 @@ public class EventNotifierExchangeSentTe
             }
 
             public boolean isEnabled(EventObject event) {
-                return true;
+                // we only want the completed event
+                return event instanceof ExchangeCompletedEvent;
+                // you can add additional filtering such as the exchange
+                // should be from a specific endpoint or route
+                // just return true for the events you like
             }
 
-            @Override
             protected void doStart() throws Exception {
-                // filter out unwanted events
-                setIgnoreCamelContextEvents(true);
-                setIgnoreServiceEvents(true);
-                setIgnoreRouteEvents(true);
-                setIgnoreExchangeCreatedEvent(true);
-                setIgnoreExchangeCompletedEvent(true);
-                setIgnoreExchangeFailedEvents(true);
-                setIgnoreExchangeRedeliveryEvents(true);
+                // noop
             }
 
-            @Override
             protected void doStop() throws Exception {
+                // noop
             }
         });
         return context;
     }
 
-    public void testExchangeSent() throws Exception {
+    public void testExchangeCompleted() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
         template.sendBody("direct:start", "Hello World");
 
         assertMockEndpointsSatisfied();
 
-        assertEquals(4, events.size());
-        ExchangeSentEvent e0 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(0));
-        ExchangeSentEvent e1 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(1));
-        ExchangeSentEvent e2 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(2));
-        ExchangeSentEvent e3 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(3));
-
-        assertEquals("log://foo", e0.getEndpoint().getEndpointUri());
-        assertEquals("direct://bar", e1.getEndpoint().getEndpointUri());
-        long time = e1.getTimeTaken();
-        assertTrue("Should take about 0.5 sec, was: " + time, time > 400);
-
-        assertEquals("mock://result", e2.getEndpoint().getEndpointUri());
-
-        assertEquals("direct://start", e3.getEndpoint().getEndpointUri());
-        time = e3.getTimeTaken();
-        assertTrue("Should take about 0.5 sec, was: " + time, time > 400);
-    }
-
-    public void testExchangeSentRecipient() throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-
-        template.sendBodyAndHeader("direct:foo", "Hello World", "foo", "direct:cool,direct:start");
-
-        assertMockEndpointsSatisfied();
+        assertEquals(1, events.size());
 
-        // give it time to complete
-        Thread.sleep(100);
+        // get the event
+        ExchangeCompletedEvent event = (ExchangeCompletedEvent) events.get(0);
+        assertNotNull(event.getExchange());
+        assertNotNull(event.getExchange().getFromEndpoint());
+        assertEquals("direct://start", event.getExchange().getFromEndpoint().getEndpointUri());
+
+        // grab the created timestamp
+        Date created = event.getExchange().getProperty(Exchange.CREATED_TIMESTAMP, Date.class);
+        assertNotNull(created);
+
+        // calculate elapsed time
+        Date now = new Date();
+        long elapsed = now.getTime() - created.getTime();
+        assertTrue("Should be > 400, was: " + elapsed, elapsed > 400);
 
-        assertEquals(6, events.size());
-        ExchangeSentEvent e0 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(0));
-        ExchangeSentEvent e1 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(1));
-        ExchangeSentEvent e2 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(2));
-        ExchangeSentEvent e3 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(3));
-        ExchangeSentEvent e4 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(4));
-        ExchangeSentEvent e5 = assertIsInstanceOf(ExchangeSentEvent.class, events.get(5));
-
-        assertEquals("direct://cool", e0.getEndpoint().getEndpointUri());
-        assertEquals("log://foo", e1.getEndpoint().getEndpointUri());
-        assertEquals("direct://bar", e2.getEndpoint().getEndpointUri());
-        assertEquals("mock://result", e3.getEndpoint().getEndpointUri());
-        assertEquals("direct://start", e4.getEndpoint().getEndpointUri());
-        assertEquals("direct://foo", e5.getEndpoint().getEndpointUri());
+        log.info("Elapsed time in millis: " + elapsed);
     }
 
     @Override
@@ -128,11 +102,7 @@ public class EventNotifierExchangeSentTe
             public void configure() throws Exception {
                 from("direct:start").to("log:foo").to("direct:bar").to("mock:result");
 
-                from("direct:bar").delay(500);
-
-                from("direct:foo").recipientList().header("foo");
-
-                from("direct:cool").delay(1000);
+                from("direct:bar").delay(500).to("mock:bar");
             }
         };
     }

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/management/EventNotifierExchangeCompletedTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date