jeudi 8 octobre 2015

Apache Camel Spring Javaconfig Unit Test No consumers available on endpoint

I have the following route configuration:

@Component
public class MyRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("direct:in").to("direct:out");
    }
}

When I try to test it:

@RunWith(CamelSpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { MyRouteTest.TestConfig.class }, loader = CamelSpringDelegatingTestContextLoader.class)
@MockEndpoints
public class MyRouteTest {
    @EndpointInject(uri = "mock:direct:out")
    private MockEndpoint mockEndpoint;

    @Produce(uri = "direct:in")
    private ProducerTemplate producerTemplate;

    @Configuration
    public static class TestConfig extends SingleRouteCamelConfiguration {
        @Bean
        @Override
        public RouteBuilder route() {
            return new MyRoute();
        }
    }

    @Test
    public void testRoute() throws Exception {
        mockEndpoint.expectedBodiesReceived("Test Message");

        producerTemplate.sendBody("Test Message");

        mockEndpoint.assertIsSatisfied();
    }
}

I get this exception:

org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: Endpoint[direct://out]. Exchange[Message: Test Message]

It looks like the Mock is not picking up the message from the endpoint.

What am I doing wrong?

Aucun commentaire:

Enregistrer un commentaire