Author: davsclaus
Date: Sat Jun 2 11:57:42 2012
New Revision: 1345497
URL: http://svn.apache.org/viewvc?rev=1345497&view=rev
Log:
Added test based on user forum issue
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeaders2Test.java
- copied, changed from r1345455,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeadersTest.java
Copied:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeaders2Test.java
(from r1345455,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeadersTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeaders2Test.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeaders2Test.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeadersTest.java&r1=1345455&r2=1345497&rev=1345497&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeadersTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DynamicRouterExchangeHeaders2Test.java
Sat Jun 2 11:57:42 2012
@@ -21,15 +21,18 @@ import java.util.List;
import java.util.Map;
import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Header;
import org.apache.camel.Headers;
import org.apache.camel.builder.RouteBuilder;
/**
* @version
*/
-public class DynamicRouterExchangeHeadersTest extends ContextTestSupport {
+public class DynamicRouterExchangeHeaders2Test extends ContextTestSupport {
private static List<String> bodies = new ArrayList<String>();
+ private static List<String> previouses = new ArrayList<String>();
public void testDynamicRouter() throws Exception {
getMockEndpoint("mock:a").expectedBodiesReceived("Hello World");
@@ -53,6 +56,12 @@ public class DynamicRouterExchangeHeader
assertEquals("Hello World", bodies.get(2));
assertEquals("Bye World", bodies.get(3));
assertEquals("Bye World", bodies.get(4));
+
+ assertEquals(4, previouses.size());
+ assertEquals("mock://a", previouses.get(0));
+ assertEquals("mock://c", previouses.get(1));
+ assertEquals("direct://foo", previouses.get(2));
+ assertEquals("mock://result", previouses.get(3));
}
@Override
@@ -62,7 +71,7 @@ public class DynamicRouterExchangeHeader
public void configure() throws Exception {
from("direct:start")
// use a bean as the dynamic router
-
.dynamicRouter(method(DynamicRouterExchangeHeadersTest.class, "slip"));
+
.dynamicRouter(method(DynamicRouterExchangeHeaders2Test.class, "slip"));
from("direct:foo").transform(constant("Bye
World")).to("mock:foo");
}
@@ -75,10 +84,14 @@ public class DynamicRouterExchangeHeader
*
* @param body the message body
* @param headers the message headers where we can store state between
invocations
+ * @param previous the previous slip
* @return endpoints to go, or <tt>null</tt> to indicate the end
*/
- public String slip(String body, @Headers Map<String, Object> headers) {
+ public String slip(String body, @Headers Map<String, Object> headers,
@Header(Exchange.SLIP_ENDPOINT) String previous) {
bodies.add(body);
+ if (previous != null) {
+ previouses.add(previous);
+ }
// get the state from the message headers and keep track how many times
// we have been invoked