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