View Javadoc

1   /*
2    * $Id: SimpleCollectionAggregatingMessageProcessorTestCase.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  import java.util.List;
26  
27  public class SimpleCollectionAggregatorTestCase extends AbstractMuleTestCase
28  {
29  
30      public SimpleCollectionAggregatorTestCase()
31      {
32          setStartContext(true);
33      }
34  
35      public void testMessageProcessor() throws Exception
36      {
37          MuleSession session = getTestSession(getTestService(), muleContext);
38          Service testService = getTestService("test", Apple.class);
39          assertNotNull(testService);
40  
41          SimpleCollectionAggregator router = new SimpleCollectionAggregator();
42          router.setMuleContext(muleContext);
43          router.setFlowConstruct(testService);
44          router.initialise();
45          
46          MuleMessage message1 = new DefaultMuleMessage("test event A", muleContext);
47          MuleMessage message2 = new DefaultMuleMessage("test event B", muleContext);
48          MuleMessage message3 = new DefaultMuleMessage("test event C", muleContext);
49          message1.setCorrelationId(message1.getUniqueId());
50          message2.setCorrelationId(message1.getUniqueId());
51          message3.setCorrelationId(message1.getUniqueId());
52          message1.setCorrelationGroupSize(3);
53  
54          ImmutableEndpoint endpoint = MuleTestUtils.getTestOutboundEndpoint(MessageExchangePattern.ONE_WAY, muleContext);
55          MuleEvent event1 = new DefaultMuleEvent(message1, endpoint, session);
56          MuleEvent event2 = new DefaultMuleEvent(message2, endpoint, session);
57          MuleEvent event3 = new DefaultMuleEvent(message3, endpoint, session);
58  
59          assertNull(router.process(event1));
60          assertNull(router.process(event2));
61          MuleEvent resultEvent = router.process(event3);
62          assertNotNull(resultEvent);
63          MuleMessage resultMessage = resultEvent.getMessage();
64          assertNotNull(resultMessage);
65          List<String> payload = (List<String>)resultMessage.getPayload();
66          assertEquals(3, payload.size());
67          assertEquals("test event A", payload.get(0));
68          assertEquals("test event B", payload.get(1));
69          assertEquals("test event C", payload.get(2));
70      }
71  
72  }