1
2
3
4
5
6
7
8
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 }