THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
@RunWith(CamelCdiRunner.class) @Beans(alternatives = AlternativeBean.class) public class CamelCdiTest { @Test public void testAlternativeBean(@Uri("direct:in") ProducerTemplate producer @Uri("mock:out") MockEndpoint mock) throws InterruptedException { mock.expectedMessageCount(1); mock.expectedBodiesReceived("test with alternative bean!"); producer.sendBody("test"); MockEndpoint.assertIsSatisfied(1L, TimeUnit.SECONDS, mock); } static class TestRoute extends RouteBuilder { @Override public void configure() { from("direct:out").routeId("test").to("mock:out"); } } } |
If you're using Arquillian as testing framework, you need to activate the alternative in your deployment method, e.g.:
Code Block | ||
---|---|---|
| ||
@RunWith(Arquillian.class) public class CamelCdiTest { @Deployment public static Archive deployment() { return ShrinkWrap.create(JavaArchive.class) // Camel CDI .addPackage(CdiCamelExtension.class.getPackage()) // Test classes .addPackage(Application.class.getPackage()) // Bean archive deployment descriptor .addAsManifestResource( new StringAsset( Descriptors.create(BeansDescriptor.class) .getOrCreateAlternatives() .stereotype(MockAlternative.class.getName()).up() .exportAsString()), "beans.xml"); } //... } |
...