MockEndpoint should save copies of received exchanges. ------------------------------------------------------
Key: CAMEL-4395 URL: https://issues.apache.org/jira/browse/CAMEL-4395 Project: Camel Issue Type: Bug Components: camel-core Affects Versions: 2.8.0 Reporter: Sergey Zhemzhitsky MockEndpoint should save copies of received exchanges, because it's hardly possible to attach a custom processor that modifies the exchange and perform assertions by means of expectedMessagesMatches. It happens because at the time of evaluation of assertions the original exchange has already been modified and it is not equal to the received exchange. {code} mockEndpoint.whenExchangeReceived(1, new Processor() { @Override public void process(Exchange exchange) throws Exception { Message out = exchange.getPattern().isOutCapable() ? exchange.getOut() : exchange.getIn(); Object newBody = getNewBodySomeHow(); out.setBody(newBody); } }); {code} {code} mockEndpoint.expectedMessagesMatches( new Predicate() { @Override public boolean matches(Exchange exchange) { Object actualBody = exchange.getIn().getBody(); // this body is equal to newBody that was set by processor in the whenExchangeReceived method Object expectedBody = getExpectedBodySomeHow(); return compareExpectedBodyAndActualBody(expectedBody, actualBody); } } ); {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira