Author: ammulder
Date: Tue Jul 1 09:48:23 2008
New Revision: 673135
URL: http://svn.apache.org/viewvc?rev=673135&view=rev
Log:
Add a test that demonstrates how Python expressions evaluate to null
and therefore always "false"
Add a base test class method that takes apecific headers
Add some IntelliJ ignores
Added:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
Modified:
activemq/camel/trunk/ (props changed)
activemq/camel/trunk/camel-core/ (props changed)
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
activemq/camel/trunk/components/camel-script/ (props changed)
activemq/camel/trunk/components/camel-script/pom.xml
Propchange: activemq/camel/trunk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jul 1 09:48:23 2008
@@ -1 +1,2 @@
target
+*.i??
Propchange: activemq/camel/trunk/camel-core/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jul 1 09:48:23 2008
@@ -5,3 +5,4 @@
target
.settings
eclipse-classes
+*.i??
Modified:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java?rev=673135&r1=673134&r2=673135&view=diff
==============================================================================
---
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
(original)
+++
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/ContextTestSupport.java
Tue Jul 1 09:48:23 2008
@@ -17,6 +17,7 @@
package org.apache.camel;
import java.util.List;
+import java.util.Map;
import javax.naming.Context;
@@ -195,6 +196,26 @@
}
/**
+ * Sends a message to the given endpoint URI with the body value and
specified headers
+ *
+ * @param endpointUri the URI of the endpoint to send to
+ * @param body the body for the message
+ * @param headers any headers to set on the message
+ */
+ protected void sendBody(String endpointUri, final Object body, final
Map<String, Object> headers) {
+ template.send(endpointUri, new Processor() {
+ public void process(Exchange exchange) {
+ Message in = exchange.getIn();
+ in.setBody(body);
+ in.setHeader("testCase", getName());
+ for (Map.Entry<String, Object> entry : headers.entrySet()) {
+ in.setHeader(entry.getKey(), entry.getValue());
+ }
+ }
+ });
+ }
+
+ /**
* Sends messages to the given endpoint for each of the specified bodies
*
* @param endpointUri the endpoint URI to send to
Propchange: activemq/camel/trunk/components/camel-script/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jul 1 09:48:23 2008
@@ -5,3 +5,4 @@
.classpath
.project
.settings
+*.i??
Modified: activemq/camel/trunk/components/camel-script/pom.xml
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/pom.xml?rev=673135&r1=673134&r2=673135&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-script/pom.xml (original)
+++ activemq/camel/trunk/components/camel-script/pom.xml Tue Jul 1 09:48:23
2008
@@ -166,7 +166,11 @@
<!--<include>**/*Test.*</include>-->
</includes>
<excludes>
- <exclude>**/*Test.*</exclude>
+ <!-- These tests fail/error; I haven't investigated yet.
+ The PythonExpressionTest also fails but that is demonstrating
a problem that should be fixed. -->
+ <exclude>**/PythonLanguageTest.*</exclude>
+ <exclude>**/JavaScriptLanguageTest.*</exclude>
+ <exclude>**/GroovyFilterTest.*</exclude>
</excludes>
</configuration>
</plugin>
Added:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java?rev=673135&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
(added)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
Tue Jul 1 09:48:23 2008
@@ -0,0 +1,49 @@
+package org.apache.camel.builder.script;
+
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * Tests a routing expression using Python
+ */
+public class PythonExpressionTest extends ContextTestSupport {
+ public void testSendMatchingMessage() throws Exception {
+ // Currently, this test fails because the Python expression in
createRouteBuilder
+ // below returns null and that is treated as 'false', therefore it's
as if the
+ // message didn't match the expression
+ // To fix that, we need to figure out how to get the expression to
return a boolean
+ getMockEndpoint("mock:result").expectedMessageCount(1);
+ getMockEndpoint("mock:unmatched").expectedMessageCount(0);
+
+ Map<String, Object> headers = new HashMap<String, Object>();
+ headers.put("foo", "bar");
+ sendBody("direct:start", "hello", headers);
+
+ assertMockEndpointsSatisifed();
+ }
+
+ public void testSendNonMatchingMessage() throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(0);
+ getMockEndpoint("mock:unmatched").expectedMessageCount(1);
+
+ Map<String, Object> headers = new HashMap<String, Object>();
+ headers.put("foo", "foo");
+ sendBody("direct:start", "hello", headers);
+
+ assertMockEndpointsSatisifed();
+ }
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() throws Exception {
+ from("direct:start").choice().
+ // The following python expression should return a
boolean
+ // but it seems to return null instead -- what's up
with that?
+ when().python("request.headers['foo'] ==
'bar'").to("mock:result")
+ .otherwise().to("mock:unmatched");
+ }
+ };
+ }
+}