camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jans...@apache.org
Subject svn commit: r797087 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/component/mock/ main/java/org/apache/camel/processor/ main/java/org/apache/camel/processor/aggregate/ test/java/org/apache/camel/component/mock/
Date Thu, 23 Jul 2009 14:38:53 GMT
Author: janstey
Date: Thu Jul 23 14:38:52 2009
New Revision: 797087

URL: http://svn.apache.org/viewvc?rev=797087&view=rev
Log:
CAMEL-1848 - add support to expect expressions/predicates on mock endpoint

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregationCollection.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java?rev=797087&r1=797086&r2=797087&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
Thu Jul 23 14:38:52 2009
@@ -38,6 +38,7 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Message;
+import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.builder.ExpressionClause;
@@ -319,12 +320,27 @@
             public void run() {
                 assertTrue("No header with name " + headerName + " found.", actualHeader
!= null);
 
-                Object actualValue = getCamelContext().getTypeConverter().convertTo(actualHeader.getClass(),
headerValue);
-                assertEquals("Header of message", actualValue, actualHeader);
+                Object actualValue;
+                if (actualHeader instanceof Expression) {
+                    actualValue = ((Expression)actualHeader).evaluate(mostRecentExchange(),
headerValue.getClass());
+                } else if (actualHeader instanceof Predicate) {
+                    actualValue = ((Predicate)actualHeader).matches(mostRecentExchange());
+                } else {                    
+                    actualValue = getCamelContext().getTypeConverter().convertTo(headerValue.getClass(),
actualHeader);
+                    assertTrue("There is no type conversion possible from " + actualHeader.getClass().getName()

+                            + " to " + headerValue.getClass().getName(), actualValue != null);
+                }
+                assertEquals("Header of message", headerValue, actualValue);
             }
+
+
         });
     }
 
+    private Exchange mostRecentExchange() {
+        return receivedExchanges.get(receivedExchanges.size() - 1);
+    }
+    
     /**
      * Adds an expectation that the given property name & value are received by this
endpoint
      */

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java?rev=797087&r1=797086&r2=797087&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java Thu
Jul 23 14:38:52 2009
@@ -102,7 +102,7 @@
      */
     public void setBatchSize(int batchSize) {
         // setting batch size to 0 or negative is like disabling it, so we set it as the
max value
-        // as the code logic is dependt on a batch size having 1..n value
+        // as the code logic is dependent on a batch size having 1..n value
         if (batchSize <= 0) {
             LOG.debug("Disabling batch size, will only be triggered by timeout");
             this.batchSize = Integer.MAX_VALUE;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregationCollection.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregationCollection.java?rev=797087&r1=797086&r2=797087&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregationCollection.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/aggregate/DefaultAggregationCollection.java
Thu Jul 23 14:38:52 2009
@@ -72,7 +72,7 @@
             LOG.trace("Evaluated expression: " + correlationExpression + " as correlation
key: " + correlationKey);
         }
 
-        // TODO: correlationKey evalutated to null should be skipped by default
+        // TODO: correlationKey evaluated to null should be skipped by default
 
         Exchange oldExchange = aggregated.get(correlationKey);
         Exchange newExchange = exchange;

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java?rev=797087&r1=797086&r2=797087&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
(original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
Thu Jul 23 14:38:52 2009
@@ -21,7 +21,9 @@
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.builder.xml.XPathBuilder;
 import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.model.language.XPathExpression;
 
 /**
  * @version $Revision$
@@ -176,6 +178,15 @@
         resultEndpoint.assertIsNotSatisfied();
     }
 
+    public void testExpressionExpectationOfHeader() throws InterruptedException {
+        MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
+        resultEndpoint.reset();
+
+        resultEndpoint.expectedHeaderReceived("number", 123);
+        template.sendBodyAndHeader("direct:a", "<foo><id>123</id></foo>",
"number", XPathBuilder.xpath("/foo/id", Integer.class));
+        resultEndpoint.assertIsSatisfied();
+    }    
+    
     public void testAscending() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectsAscending().body();
@@ -185,7 +196,7 @@
         assertMockEndpointsSatisfied();
     }
 
-    public void testAscendingFaied() throws Exception {
+    public void testAscendingFailed() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectsAscending().body();
         mock.expectsAscending().header("counter");



Mime
View raw message