View Javadoc

1   /*
2    * $Id: MessageChunkAggregatingMessageProcessorTestCase.java 17987 2010-07-09 12:22:32Z 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.routing;
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.MuleSession;
19  import org.mule.api.endpoint.ImmutableEndpoint;
20  import org.mule.api.service.Service;
21  import org.mule.tck.AbstractMuleTestCase;
22  import org.mule.tck.MuleTestUtils;
23  import org.mule.tck.testmodels.fruit.Apple;
24  
25  public class MessageChunkAggregatorTestCase extends AbstractMuleTestCase
26  {
27  
28      public MessageChunkAggregatorTestCase()
29      {
30          setStartContext(true);
31      }
32  
33      public void testMessageProcessor() throws Exception
34      {
35          MuleSession session = getTestSession(getTestService(), muleContext);
36          Service testService = getTestService("test", Apple.class);
37          assertNotNull(testService);
38  
39          MessageChunkAggregator router = new MessageChunkAggregator();
40          router.setMuleContext(muleContext);
41          router.setFlowConstruct(testService);    
42          router.initialise();
43  
44          MuleMessage message1 = new DefaultMuleMessage("test event A", muleContext);
45          MuleMessage message2 = new DefaultMuleMessage("test event B", muleContext);
46          MuleMessage message3 = new DefaultMuleMessage("test event C", muleContext);
47          message1.setCorrelationId(message1.getUniqueId());
48          message2.setCorrelationId(message1.getUniqueId());
49          message3.setCorrelationId(message1.getUniqueId());
50          message1.setCorrelationGroupSize(3);
51  
52          ImmutableEndpoint endpoint = MuleTestUtils.getTestOutboundEndpoint(MessageExchangePattern.ONE_WAY, muleContext);
53          MuleEvent event1 = new DefaultMuleEvent(message1, endpoint, session);
54          MuleEvent event2 = new DefaultMuleEvent(message2, endpoint, session);
55          MuleEvent event3 = new DefaultMuleEvent(message3, endpoint, session);
56  
57          assertNull(router.process(event1));
58          assertNull(router.process(event2));
59          MuleEvent resultEvent = router.process(event3);
60          assertNotNull(resultEvent);
61          MuleMessage resultMessage = resultEvent.getMessage();
62          assertNotNull(resultMessage);
63          String payload = resultMessage.getPayloadAsString();
64          assertEquals("test event Atest event Btest event C", payload);
65      }
66  
67  }