View Javadoc

1   /*
2    * $Id: ResponseMessageProcessorAdapterTestCase.java 22369 2011-07-11 07:53:30Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  }