use of com.adaptris.core.stubs.MockMessageProducer in project interlok by adaptris.
the class MultiProducerWorkflowTest method testOnMessage_SkipProducer.
@Test
public void testOnMessage_SkipProducer() throws Exception {
MockMessageProducer mock1 = new MockMessageProducer();
MockMessageProducer mock2 = new MockMessageProducer();
MockMessageProducer workflowProducer = new MockMessageProducer();
MockMessageProducer serviceProducer = new MockMessageProducer();
MockChannel channel = createChannel(Arrays.asList(new AdaptrisMessageProducer[] { mock1, mock2 }), Arrays.asList(new Service[] { new StandaloneProducer(serviceProducer), new MockSkipProducerService() }));
try {
MultiProducerWorkflow workflow = (MultiProducerWorkflow) channel.getWorkflowList().get(0);
workflow.setProducer(workflowProducer);
workflow.setUseProcessedMessage(false);
channel.prepare();
channel.requestStart();
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage(ORIGINAL_PAYLOAD);
workflow.onAdaptrisMessage(msg);
assertEquals(1, mock1.messageCount());
assertEquals(1, mock2.messageCount());
assertEquals(1, serviceProducer.messageCount());
assertEquals(0, workflowProducer.messageCount());
} finally {
channel.requestClose();
}
}
use of com.adaptris.core.stubs.MockMessageProducer in project interlok by adaptris.
the class MultiProducerWorkflowTest method testOnMessage_withConsumeLocation_NoMatch.
@Test
public void testOnMessage_withConsumeLocation_NoMatch() throws Exception {
MockMessageProducer producer = new MockMessageProducer();
MockChannel channel = createChannel(Arrays.asList(new AdaptrisMessageProducer[] { producer }), Arrays.asList(new Service[] { new NullService() }));
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage(PAYLOAD_1);
MultiProducerWorkflow workflow = (MultiProducerWorkflow) channel.getWorkflowList().get(0);
workflow.setConsumer(new ConsumerWithLocation(getName()));
try {
start(channel);
workflow.onAdaptrisMessage(msg);
AdaptrisMessage consumed = producer.getMessages().get(0);
assertFalse(consumed.headersContainsKey(CoreConstants.MESSAGE_CONSUME_LOCATION));
} finally {
stop(channel);
}
}
use of com.adaptris.core.stubs.MockMessageProducer in project interlok by adaptris.
the class MultiProducerWorkflowTest method testHandleRuntimeException.
@Test
public void testHandleRuntimeException() throws Exception {
MockMessageProducer mock1 = new MockMessageProducer();
MockMessageProducer mock2 = new MockMessageProducer();
MockMessageProducer meh = new MockMessageProducer();
MockChannel channel = createChannel(Arrays.asList(new AdaptrisMessageProducer[] { mock1, mock2 }), Arrays.asList(new Service[] { new PayloadFromTemplateService().withTemplate(MODIFIED_PAYLOAD) }));
channel.setMessageErrorHandler(new StandardProcessingExceptionHandler(new ServiceList(new ArrayList(Arrays.asList(new Service[] { new StandaloneProducer(meh) })))));
try {
MultiProducerWorkflow workflow = (MultiProducerWorkflow) channel.getWorkflowList().get(0);
workflow.setUseProcessedMessage(false);
workflow.setProducer(new MockMessageProducer() {
@Override
protected void doProduce(AdaptrisMessage msg, String endpoint) throws ProduceException {
throw new RuntimeException();
}
});
channel.prepare();
channel.requestStart();
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage(ORIGINAL_PAYLOAD);
workflow.onAdaptrisMessage(msg);
assertEquals(0, mock1.getMessages().size());
assertEquals(0, mock2.getMessages().size());
assertEquals(1, meh.getMessages().size());
assertEquals(ORIGINAL_PAYLOAD, meh.getMessages().get(0).getContent());
} finally {
channel.requestClose();
}
}
use of com.adaptris.core.stubs.MockMessageProducer in project interlok by adaptris.
the class PollingTriggerTest method testTriggerWithStaticTemplate.
@Test
public void testTriggerWithStaticTemplate() throws Exception {
Trigger trigger = new Trigger();
MockMessageProducer mockProducer = new MockMessageProducer();
Channel c = createChannel(new PollingTrigger(trigger, new StaticPollingTemplate(PAYLOAD)), mockProducer);
// .setDestination(new ConfiguredConsumeDestination(getName(), null, getName()));
try {
BaseCase.start(c);
trigger.fire();
AdaptrisMessage msg = mockProducer.getMessages().get(0);
assertEquals(PAYLOAD, msg.getContent());
} finally {
BaseCase.stop(c);
}
}
use of com.adaptris.core.stubs.MockMessageProducer in project interlok by adaptris.
the class PollingTriggerTest method testTrigger_TemplateFails.
@Test
public void testTrigger_TemplateFails() throws Exception {
// setContent must have a encoding...
String script = "message.setContent('" + PAYLOAD + "')";
Trigger trigger = new Trigger();
MockMessageProducer mockProducer = new MockMessageProducer();
Channel c = createChannel(new PollingTrigger(trigger, new DynamicPollingTemplate(new EmbeddedScriptingService().withScript("nashorn", script))), mockProducer);
try {
BaseCase.start(c);
trigger.fire();
assertEquals(0, mockProducer.getMessages().size());
} finally {
BaseCase.stop(c);
}
}
Aggregations