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 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 }