Your regexp pattern does not match direct-vm:out2 as you have a
parameter, so adjust the regular exp to match using wildcards etc.

On Thu, Nov 6, 2014 at 9:10 AM, Geert Vanheusden <geer...@aviovision.com> wrote:
> Any thoughts on this issue or should I just create a ticket for it?
>
> Kind regards,
>
> Geert
>
> On Tue, Nov 4, 2014 at 11:13 AM, Geert Vanheusden <geer...@aviovision.com>
> wrote:
>
>> Hi Guys,
>>
>> I wanted to mock a "direct-vm" endpoint with the "block=true" option
>> but it fails.
>>
>> Here you can find a unit test to reproduce this:
>>
>> ===================================
>>
>> import org.apache.camel.builder.RouteBuilder;
>> import org.apache.camel.component.mock.MockEndpoint;
>> import org.apache.camel.impl.DefaultExchange;
>> import org.apache.camel.test.junit4.CamelTestSupport;
>> import org.junit.Test;
>>
>> public class DirectVmTest extends CamelTestSupport {
>>
>>     @Override
>>     protected RouteBuilder createRouteBuilder() throws Exception {
>>         return new RouteBuilder() {
>>
>>             @Override
>>             public void configure() throws Exception {
>>                 from("direct:in1")
>>                         .to("direct-vm:out1");
>>
>>                 from("direct:in2")
>>                         .to("direct-vm:out2?block=true");
>>             }
>>
>>         };
>>     }
>>
>>     @Override
>>     public String isMockEndpointsAndSkip() {
>>         return "(direct-vm:out1|direct-vm:out2)";
>>     }
>>
>> // @Override
>> // public String isMockEndpointsAndSkip() {
>> // return "*";
>> // }
>>
>> // @Override
>> // public String isMockEndpoints() {
>> // return "(direct-vm:out1|direct-vm:out2)";
>> // }
>>
>> // @Override
>> // public String isMockEndpoints() {
>> // return "*";
>> // }
>>
>>     @Test
>>     public void directVmEndpointShouldBeMocked() throws
>> InterruptedException {
>>         MockEndpoint mockEndpoint = getMockEndpoint("mock:direct-vm:out1");
>>         mockEndpoint.expectedMessageCount(1);
>>
>>         template.send("direct:in1", new DefaultExchange(context));
>>
>>         mockEndpoint.assertIsSatisfied();
>>     }
>>
>>     @Test
>>     public void directVmEndpointWithBlockShouldBeMocked() throws
>> InterruptedException {
>>         MockEndpoint mockEndpoint = getMockEndpoint("mock:direct-vm:out2");
>>         mockEndpoint.expectedMessageCount(1);
>>
>>         template.send("direct:in2", new DefaultExchange(context));
>>
>>         mockEndpoint.assertIsSatisfied();
>>     }
>> }
>>
>> ===================================
>>
>> The first test without the block succeeds but the second one with the
>> block option fails.
>>
>> I tested it on version 2.14.0.
>>
>> Please also try to uncomment the code block to enable auto mocking and
>> see the different test results.
>>
>> Seems to me like a bug. What do you guys think?
>>
>> Kind regards,
>>
>> Geert
>>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to