package camelinaction;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.RoutePolicy;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
/**
* Testing the FlipRoutePolicy using Java DSL
*/
public class FlipRoutePolicyJavaDSLTest extends CamelTestSupport {
@Test
public void testFlipRoutePolicyTest() throws Exception {
MockEndpoint foo = getMockEndpoint("mock:foo");
foo.expectedMinimumMessageCount(5);
MockEndpoint bar = getMockEndpoint("mock:bar");
bar.expectedMinimumMessageCount(5);
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
// create the flip route policy
RoutePolicy policy = new FlipRoutePolicy("foo", "bar");
// use the flip route policy in the foo route
from("timer://foo?delay=500")
.routeId("foo").routePolicy(policy)
.setBody().constant("Foo message")
.to("log:foo")
.to("mock:foo");
// use the flip route policy in the bar route and do NOT start
// this route on startup
from("timer://bar?delay=500")
.routeId("bar").routePolicy(policy).noAutoStartup()
.setBody().constant("Bar message")
.to("log:bar")
.to("mock:bar");
}
};
}
}