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


Reply via email to