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