Author: janstey
Date: Mon Sep 29 09:07:24 2008
New Revision: 700160

URL: http://svn.apache.org/viewvc?rev=700160&view=rev
Log:
CAMEL-907 - Adding tests for the custom xpath functions. Also
removed the out-body and out-header xpath functions that were 
supported on the default namespace as these could never be 
triggered (xpath requires a NS prefix for a custom function). 
Instead of these use out:header() and out:body().


Added:
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java
   (with props)
Modified:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java?rev=700160&r1=700159&r2=700160&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
 Mon Sep 29 09:07:24 2008
@@ -511,15 +511,6 @@
                             return getOutHeaderFunction();
                         }
                     }
-                    if 
(isMatchingNamespaceOrEmptyNamespace(qName.getNamespaceURI(), 
DEFAULT_NAMESPACE)) {
-                        String localPart = qName.getLocalPart();
-                        if (localPart.equals("out-body") && argumentCount == 
0) {
-                            return getOutBodyFunction();
-                        }
-                        if (localPart.equals("out-header") && argumentCount == 
1) {
-                            return getOutHeaderFunction();
-                        }
-                    }
                 }
                 return answer;
             }

Added: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java?rev=700160&view=auto
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java
 (added)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java
 Mon Sep 29 09:07:24 2008
@@ -0,0 +1,81 @@
+/**
+ * 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.language;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import static org.apache.camel.component.mock.MockEndpoint.expectsMessageCount;
+
+/**
+ * @version $Revision: 693948 $
+ */
+public class XPathFunctionTest extends ContextTestSupport {
+
+    protected MockEndpoint x;
+    protected MockEndpoint y;
+    protected MockEndpoint z;
+
+    public void testCheckHeader() throws Exception {
+        String body = "<one/>";
+        x.expectedBodiesReceived(body);
+        // The SpringChoiceTest.java can't setup the header by Spring 
configure file
+        // x.expectedHeaderReceived("name", "a");
+        expectsMessageCount(0, y, z);
+
+        sendMessage("bar", body);
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testCheckBody() throws Exception {
+        String body = "<two/>";
+        y.expectedBodiesReceived(body);
+        expectsMessageCount(0, x, z);
+
+        sendMessage("cheese", body);
+
+        assertMockEndpointsSatisfied();
+    }
+
+    protected void sendMessage(final Object headerValue, final Object body) 
throws Exception {
+        template.sendBodyAndHeader("direct:start", body, "foo", headerValue);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        x = getMockEndpoint("mock:x");
+        y = getMockEndpoint("mock:y");
+        z = getMockEndpoint("mock:z");
+    }    
+    
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                // START SNIPPET: ex                
+                from("direct:start").choice()
+                  .when().xpath("in:header('foo') = 'bar'").to("mock:x")
+                  .when().xpath("in:body() = '<two/>'").to("mock:y")
+                  .otherwise().to("mock:z");
+                // END SNIPPET: ex
+            }
+        };
+    }
+
+}

Propchange: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/language/XPathFunctionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to