You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Sergey Zhemzhitsky (JIRA)" <ji...@apache.org> on 2011/08/30 16:07:37 UTC

[jira] [Created] (CAMEL-4395) MockEndpoint should save copies of received exchanges.

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

        

[jira] [Closed] (CAMEL-4395) MockEndpoint should save copies of received exchanges.

Posted by "Sergey Zhemzhitsky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CAMEL-4395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Zhemzhitsky closed CAMEL-4395.
-------------------------------------

    Resolution: Won't Fix

Closing this issue because it has already been fixed on trunk

> 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