1
2
3
4
5
6
7 package org.mule.processor;
8
9 import org.mule.api.MuleEvent;
10 import org.mule.api.MuleException;
11 import org.mule.api.processor.MessageProcessor;
12 import org.mule.processor.chain.DefaultMessageProcessorChainBuilder;
13 import org.mule.tck.junit4.AbstractMuleContextTestCase;
14 import org.mule.transformer.simple.StringAppendTransformer;
15
16 import org.junit.Test;
17
18 import static org.junit.Assert.assertEquals;
19
20 public class ResponseMessageProcessorAdapterTestCase extends AbstractMuleContextTestCase
21 {
22
23 @Test
24 public void testResponseAdaptorSingleMP() throws MuleException, Exception
25 {
26 DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
27 builder.chain(new StringAppendTransformer("1"), new ResponseMessageProcessorAdapter(
28 new StringAppendTransformer("3")), new StringAppendTransformer("2"));
29 assertEquals("0123", builder.build().process(getTestEventUsingFlow("0")).getMessageAsString());
30 }
31
32 @Test
33 public void testResponseAdaptorSingleMPReturnsNull() throws MuleException, Exception
34 {
35 DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
36 builder.chain(new StringAppendTransformer("1"), new ResponseMessageProcessorAdapter(
37 new ReturnNullMP()), new StringAppendTransformer("2"));
38 assertEquals("012", builder.build().process(getTestEventUsingFlow("0")).getMessageAsString());
39 }
40
41 @Test
42 public void testResponseAdaptorNestedChain() throws MuleException, Exception
43 {
44 DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
45 builder.chain(
46 new StringAppendTransformer("1"),
47 new ResponseMessageProcessorAdapter(new DefaultMessageProcessorChainBuilder().chain(
48 new StringAppendTransformer("a"), new StringAppendTransformer("b")).build()),
49 new StringAppendTransformer("2"));
50 assertEquals("012ab", builder.build().process(getTestEventUsingFlow("0")).getMessageAsString());
51 }
52
53 @Test
54 public void testResponseAdaptorNestedChainReturnsNull() throws MuleException, Exception
55 {
56 DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
57 builder.chain(
58 new StringAppendTransformer("1"),
59 new ResponseMessageProcessorAdapter(new DefaultMessageProcessorChainBuilder().chain(
60 new StringAppendTransformer("a"), new StringAppendTransformer("b"), new ReturnNullMP())
61 .build()), new StringAppendTransformer("2"));
62 assertEquals("012", builder.build().process(getTestEventUsingFlow("0")).getMessageAsString());
63 }
64
65 private static class ReturnNullMP implements MessageProcessor
66 {
67 public MuleEvent process(MuleEvent event) throws MuleException
68 {
69 return null;
70 }
71 }
72
73 }