On Thu, Jul 23, 2009 at 5:10 PM, Jon Anstey<jans...@gmail.com> wrote: > Claus, shouldn't you be on vacation? ;) Yeah but I gotta watch the commit log and see if my apprentices doing a good job. You passed the test. I
> > The method is used in the expression/predicate evaluation. Yeah I guess todays beer had an impact after all :) > > On Thu, Jul 23, 2009 at 12:22 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > >> 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 >> > > > > -- > Cheers, > Jon > > http://janstey.blogspot.com/ > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus