View Javadoc

1   /*
2    * $Id: InboundEndpointMessageProcessorsTestCase.java 19887 2010-10-13 14:58:55Z dfeist $
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.endpoint.inbound;
12  
13  import org.mule.DefaultMuleEvent;
14  import org.mule.DefaultMuleMessage;
15  import org.mule.MessageExchangePattern;
16  import org.mule.api.MuleEvent;
17  import org.mule.api.MuleMessage;
18  import org.mule.api.endpoint.ImmutableEndpoint;
19  import org.mule.api.endpoint.InboundEndpoint;
20  import org.mule.api.processor.MessageProcessor;
21  import org.mule.endpoint.AbstractMessageProcessorTestCase;
22  import org.mule.processor.chain.DefaultMessageProcessorChainBuilder;
23  import org.mule.tck.testmodels.mule.TestMessageProcessor;
24  
25  import java.util.HashMap;
26  import java.util.Map;
27  
28  /**
29   * Unit test for configuring message processors on an inbound endpoint.
30   */
31  public class InboundEndpointMessageProcessorsTestCase extends AbstractMessageProcessorTestCase
32  {
33      private static final String TEST_MESSAGE = "test";
34  
35      private InboundEndpoint endpoint;
36      private MuleMessage inMessage;
37      private MuleEvent requestEvent;
38      private MuleEvent result;
39  
40      @Override
41      protected void doSetUp() throws Exception
42      {
43          super.doSetUp();
44          inMessage = createTestRequestMessage();
45          endpoint = createTestInboundEndpoint(null, null, null, null, 
46              MessageExchangePattern.REQUEST_RESPONSE, null);
47          requestEvent = createTestRequestEvent(endpoint);
48      }
49  
50      public void testProcessors() throws Exception
51      {
52          DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
53          builder.chain(new TestMessageProcessor("1"), new TestMessageProcessor("2"), new TestMessageProcessor("3"));
54          MessageProcessor mpChain = builder.build();
55          
56          result = mpChain.process(requestEvent);
57          assertEquals(TEST_MESSAGE + ":1:2:3", result.getMessage().getPayload());
58      }
59  
60      public void testNoProcessors() throws Exception
61      {
62          DefaultMessageProcessorChainBuilder builder = new DefaultMessageProcessorChainBuilder();
63          MessageProcessor mpChain = builder.build();
64          
65          result = mpChain.process(requestEvent);
66          assertEquals(TEST_MESSAGE, result.getMessage().getPayload());
67      }
68  
69      protected MuleMessage createTestRequestMessage()
70      {
71          Map<String, Object> props = new HashMap<String, Object>();
72          props.put("prop1", "value1");
73          return new DefaultMuleMessage(TEST_MESSAGE, props, muleContext);
74      }
75  
76      protected MuleEvent createTestRequestEvent(ImmutableEndpoint endpoint) throws Exception
77      {
78          return new DefaultMuleEvent(inMessage, endpoint, getTestSession(getTestService(), muleContext));
79      }    
80  }