use of com.adaptris.core.stubs.MockChannel in project interlok by adaptris.
the class MultiProducerWorkflowTest method testHandleProduceException.
@Test
public void testHandleProduceException() 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.setProducer(new MockMessageProducer() {
@Override
protected void doProduce(AdaptrisMessage msg, String endpoint) throws ProduceException {
throw new ProduceException();
}
});
workflow.setUseProcessedMessage(false);
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.MockChannel 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.MockChannel 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.MockChannel in project interlok by adaptris.
the class MultiProducerWorkflowTest method createChannel.
private MockChannel createChannel(List<AdaptrisMessageProducer> list, List<Service> services) throws Exception {
MockChannel channel = new MockChannel();
MultiProducerWorkflow workflow = new MultiProducerWorkflow();
String uuid = UUID.randomUUID().toString();
// workflow.getConsumer().setDestination(new ConfiguredConsumeDestination(uuid));
for (AdaptrisMessageProducer p : list) {
workflow.addStandaloneProducer(new StandaloneProducer(p));
}
workflow.getServiceCollection().addAll(services);
channel.getWorkflowList().add(workflow);
return channel;
}
use of com.adaptris.core.stubs.MockChannel 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();
}
}
Aggregations