1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.routing;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleEvent;
15 import org.mule.api.MuleEventContext;
16 import org.mule.api.MuleMessage;
17 import org.mule.api.MuleMessageCollection;
18 import org.mule.api.lifecycle.Callable;
19 import org.mule.module.client.MuleClient;
20 import org.mule.tck.AbstractServiceAndFlowTestCase;
21
22 import java.util.Arrays;
23 import java.util.Collection;
24 import java.util.List;
25
26 import org.junit.Test;
27 import org.junit.runners.Parameterized.Parameters;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotSame;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.assertTrue;
33
34 public class InboundAggregationNoTimeoutTestCase extends AbstractServiceAndFlowTestCase
35 {
36 @Parameters
37 public static Collection<Object[]> parameters()
38 {
39 return Arrays.asList(new Object[][]{
40 {ConfigVariant.SERVICE, "org/mule/test/integration/routing/multi-inbound-aggregator-no-timeout-service.xml"},
41 {ConfigVariant.FLOW, "org/mule/test/integration/routing/multi-inbound-aggregator-no-timeout-flow.xml"}
42 });
43 }
44
45 public InboundAggregationNoTimeoutTestCase(ConfigVariant variant, String configResources)
46 {
47 super(variant, configResources);
48 }
49
50 @Test
51 public void testAggregatorWithNoTimeout() throws Exception
52 {
53 MuleMessage message = new DefaultMuleMessage("test", muleContext);
54 MuleClient client = new MuleClient(muleContext);
55 client.dispatch("vm://distributor.queue", message);
56
57 MuleMessage result = client.request("vm://results", 10000);
58
59 assertNotNull(result);
60 assertTrue(result instanceof MuleMessageCollection);
61 MuleMessageCollection mc = (MuleMessageCollection)result;
62 assertEquals(3, mc.size());
63 for (int i = 0; i < mc.getMessagesAsArray().length; i++)
64 {
65 MuleMessage msg = mc.getMessagesAsArray()[i];
66 assertEquals("test Received", msg.getPayload());
67 assertEquals(message.getMessageRootId(), msg.getMessageRootId());
68 }
69 assertEquals(message.getMessageRootId(), result.getMessageRootId());
70 }
71
72 public static class TestCollectionService implements Callable
73 {
74 @Override
75 public Object onCall(MuleEventContext eventContext) throws Exception
76 {
77 MuleMessage message = eventContext.getMessage();
78 process((List<?>) message.getPayload());
79 return message;
80 }
81
82 public Object process(List<?> responseMessages)
83 {
84 assertEquals(3, responseMessages.size());
85 return responseMessages;
86 }
87 }
88 }