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