Author: davsclaus
Date: Fri Jun  6 04:28:28 2008
New Revision: 663899

URL: http://svn.apache.org/viewvc?rev=663899&view=rev
Log:
CAMEL-515: Added bean pipeline test to verift copy of headers

Added:
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
   (with props)
Modified:
    activemq/camel/trunk/camel-core/src/test/resources/log4j.properties

Added: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java?rev=663899&view=auto
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
 (added)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
 Fri Jun  6 04:28:28 2008
@@ -0,0 +1,93 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.bean;
+
+import java.util.Map;
+import javax.naming.Context;
+
+import org.apache.camel.Body;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Headers;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.util.jndi.JndiContext;
+
+/**
+ * Unit test of bean can propogate headers in a pipleline
+ */
+public class BeanPipelineTest extends ContextTestSupport {
+
+    public void testBeanInPipeline() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Hello World from James");
+        mock.expectedHeaderReceived("from", "James");
+
+        template.sendBodyAndHeader("direct:input", "Hello World", "from", 
"Claus");
+        mock.assertIsSatisfied();
+    }
+
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            public void configure() throws Exception {
+                from("direct:input").
+                    pipeline("bean:foo", "bean:bar?methodName=usingExchange", 
"bean:baz").
+                    to("mock:result");
+            }
+        };
+    }
+
+    protected Context createJndiContext() throws Exception {
+        JndiContext answer = new JndiContext();
+        answer.bind("foo", new FooBean());
+        answer.bind("bar", new BarBean());
+        answer.bind("baz", new BazBean());
+        return answer;
+    }
+
+    public static class FooBean {
+        public void onlyPlainBody(Object body) {
+            assertEquals("Hello World", body);
+        }
+    }
+
+    public static class BarBean {
+        public void doNotUseMe(String body) {
+            fail("Should not invoce me");
+        }
+
+        public void usingExchange(Exchange exchange) {
+            String body = exchange.getIn().getBody(String.class);
+            assertEquals("Hello World", body);
+            assertEquals("Claus", exchange.getIn().getHeader("from"));
+            exchange.getOut(true).setHeader("from", "James");
+            exchange.getOut().setBody("Hello World from James");
+        }
+    }
+
+    public static class BazBean {
+        public void doNotUseMe(String body) {
+            fail("Should not invoce me");
+        }
+
+        public void withAnnotations(@Headers Map headers, @Body String body) {
+            assertEquals("Hello World from James", body);
+            assertEquals("James", headers.get("from"));
+        }
+    }
+
+}

Propchange: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: activemq/camel/trunk/camel-core/src/test/resources/log4j.properties
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/resources/log4j.properties?rev=663899&r1=663898&r2=663899&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/resources/log4j.properties 
(original)
+++ activemq/camel/trunk/camel-core/src/test/resources/log4j.properties Fri Jun 
 6 04:28:28 2008
@@ -21,6 +21,7 @@
 log4j.rootLogger=INFO, out
 
 log4j.logger.org.apache.activemq.spring=WARN
+log4j.logger.org.apache.camel=DEBUG
 
 # CONSOLE appender not used by default
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender


Reply via email to