Hi Looks like this method - mostRecentExchange
was added in patch but not used in code, e.g. can/should be deleted. On Thu, Jul 23, 2009 at 4:38 PM, <jans...@apache.org> wrote: > 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"); > > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus