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

Reply via email to