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