1
2
3
4
5
6
7 package org.mule.routing;
8
9 import org.mule.DefaultMuleEvent;
10 import org.mule.DefaultMuleMessage;
11 import org.mule.MessageExchangePattern;
12 import org.mule.api.MuleEvent;
13 import org.mule.api.MuleMessage;
14 import org.mule.api.MuleSession;
15 import org.mule.api.endpoint.ImmutableEndpoint;
16 import org.mule.api.service.Service;
17 import org.mule.tck.MuleTestUtils;
18 import org.mule.tck.junit4.AbstractMuleContextTestCase;
19 import org.mule.tck.testmodels.fruit.Apple;
20
21 import org.junit.Test;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertNull;
26
27 public class MessageChunkAggregatorTestCase extends AbstractMuleContextTestCase
28 {
29
30 public MessageChunkAggregatorTestCase()
31 {
32 setStartContext(true);
33 }
34
35 @Test
36 public void testMessageProcessor() throws Exception
37 {
38 MuleSession session = getTestSession(getTestService(), muleContext);
39 Service testService = getTestService("test", Apple.class);
40 assertNotNull(testService);
41
42 MessageChunkAggregator router = new MessageChunkAggregator();
43 router.setMuleContext(muleContext);
44 router.setFlowConstruct(testService);
45 router.initialise();
46
47 MuleMessage message1 = new DefaultMuleMessage("test event A", muleContext);
48 MuleMessage message2 = new DefaultMuleMessage("test event B", muleContext);
49 MuleMessage message3 = new DefaultMuleMessage("test event C", muleContext);
50 message1.setCorrelationId(message1.getUniqueId());
51 message2.setCorrelationId(message1.getUniqueId());
52 message3.setCorrelationId(message1.getUniqueId());
53 message1.setCorrelationGroupSize(3);
54
55 ImmutableEndpoint endpoint = MuleTestUtils.getTestOutboundEndpoint(MessageExchangePattern.ONE_WAY, muleContext);
56 MuleEvent event1 = new DefaultMuleEvent(message1, endpoint, session);
57 MuleEvent event2 = new DefaultMuleEvent(message2, endpoint, session);
58 MuleEvent event3 = new DefaultMuleEvent(message3, endpoint, session);
59
60 assertNull(router.process(event1));
61 assertNull(router.process(event2));
62 MuleEvent resultEvent = router.process(event3);
63 assertNotNull(resultEvent);
64 MuleMessage resultMessage = resultEvent.getMessage();
65 assertNotNull(resultMessage);
66 String payload = resultMessage.getPayloadAsString();
67 assertEquals("test event Atest event Btest event C", payload);
68 }
69
70 }