Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.samples.camel;
- import static org.apache.activemq.camel.component.ActiveMQComponent.activeMQComponent;
- import java.util.Date;
- import org.apache.camel.CamelContext;
- import org.apache.camel.ConsumerTemplate;
- import org.apache.camel.EndpointInject;
- import org.apache.camel.Exchange;
- import org.apache.camel.Message;
- import org.apache.camel.Processor;
- import org.apache.camel.Produce;
- import org.apache.camel.ProducerTemplate;
- import org.apache.camel.builder.RouteBuilder;
- import org.apache.camel.component.mock.MockEndpoint;
- import org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy;
- import org.apache.camel.test.junit4.CamelTestSupport;
- import org.junit.Test;
- public class PollEnrichTest extends CamelTestSupport {
- @EndpointInject(uri = "mock:result")
- protected MockEndpoint resultEndpoint;
- @Produce(uri = "direct:start")
- protected ProducerTemplate template;
- @Produce(uri = "activemq:queue:test.a")
- protected ProducerTemplate jmsTemplate;
- protected CamelContext createCamelContext() throws Exception {
- CamelContext camelContext = super.createCamelContext();
- camelContext.addComponent("activemq", activeMQComponent("vm://localhost?broker.persistent=false"));
- return camelContext;
- }
- @Test
- public void failsToEnrichJmsMessage() throws Exception {
- context().addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("activemq:queue:test.a")
- .log("from activemq queue: ${body}")
- .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
- .log("enriched: ${body}")
- .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
- .to("mock:result");
- }
- });
- context().start();
- String expectedBody = "hello world";
- resultEndpoint.expectedBodiesReceived(expectedBody);
- jmsTemplate.sendBody("enrich.txt");
- resultEndpoint.assertIsNotSatisfied();
- }
- @Test
- public void testEnrichJmsMessage() throws Exception {
- context().addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("activemq:queue:test.a")
- .log("from activemq queue: ${body}")
- .process(new Processor() {
- @Override
- public void process(Exchange exchange) throws Exception {
- Message in = exchange.getIn();
- String filename = in.getBody(String.class);
- log.info("filename: " + filename);
- ConsumerTemplate consumer = context.createConsumerTemplate();
- Exchange dowbloadExchg = consumer.receive("file://target/test-classes/inbox?noop=true&fileName=" + filename);
- exchange.getOut().setBody(dowbloadExchg.getIn().getBody());
- }
- })
- .to("mock:result")
- ;
- }
- });
- context().start();
- String expectedBody = "hello world";
- resultEndpoint.expectedBodiesReceived(expectedBody);
- jmsTemplate.sendBody("enrich.txt");
- resultEndpoint.assertIsSatisfied();
- }
- @Test
- public void failsToEnrichMessage() throws Exception {
- context().addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- from("direct:start")
- .log("${body}")
- .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
- .log("${body}")
- .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
- .to("mock:result");
- }
- });
- context().start();
- String expectedBody = "hello world";
- resultEndpoint.expectedBodiesReceived(expectedBody);
- template.sendBodyAndHeader("enrich.txt", "foo", "bar");
- resultEndpoint.assertIsNotSatisfied();
- }
- @Test
- public void testEnrichMessage2() throws Exception {
- context().addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
- long startTime = System.currentTimeMillis() + 5L;
- policy.setRouteStartDate(new Date(startTime));
- policy.setRouteStartRepeatCount(0);
- // policy.setRouteStartRepeatInterval(3000);
- from("file://target/test-classes/inbox?noop=true&include=.*.data")
- .routeId("test-route")
- .routePolicy(policy)
- .log("file: ${headers.CamelFileName}")
- .setBody(simple("${headers.CamelFileName}"))
- .to("log:org.samples.camel.PollEnrichTest?level=INFO&showAll=true")
- .to("mock:result");
- }
- });
- context().start();
- resultEndpoint.expectedMessageCount(2);
- resultEndpoint.message(0).body().isEqualTo("File001.data");
- resultEndpoint.message(1).body().isEqualTo("File002.data");
- resultEndpoint.assertIsSatisfied();
- }
- // @Test
- // public void testEnrichMessage() throws Exception {
- // String expectedBody = "hello world";
- //
- // resultEndpoint.expectedBodiesReceived(expectedBody);
- //
- // template.sendBodyAndHeader("enrich.txt", "foo", "bar");
- //
- // resultEndpoint.assertIsSatisfied();
- // }
- //
- // @Override
- // protected RouteBuilder createRouteBuilder() {
- // return new RouteBuilder() {
- // public void configure() {
- // from("direct:start")
- // .log("${body}")
- // .pollEnrich("file://target/test-classes/inbox?noop=true&fileName=${body}")
- // .log("${body}")
- // .to("log:org.samples.camel?level=DEBUG")
- // .to("mock:result");
- // }
- // };
- // }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement