1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.routing.outbound;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.AbstractServiceAndFlowTestCase;
17 import org.mule.tck.testmodels.fruit.Apple;
18 import org.mule.tck.testmodels.fruit.Banana;
19 import org.mule.tck.testmodels.fruit.FruitBowl;
20 import org.mule.tck.testmodels.fruit.Orange;
21
22 import java.util.ArrayList;
23 import java.util.Arrays;
24 import java.util.Collection;
25 import java.util.List;
26
27 import org.junit.Test;
28 import org.junit.runners.Parameterized.Parameters;
29
30 import static org.junit.Assert.assertEquals;
31 import static org.junit.Assert.assertNotNull;
32 import static org.junit.Assert.assertTrue;
33
34 public class ExpressionSplitterAsyncTestCase extends AbstractServiceAndFlowTestCase
35 {
36 @Parameters
37 public static Collection<Object[]> parameters()
38 {
39 return Arrays.asList(new Object[][]{
40 {ConfigVariant.SERVICE,
41 "org/mule/test/integration/routing/outbound/expression-splitter-async-test-service.xml"},
42 {ConfigVariant.FLOW,
43 "org/mule/test/integration/routing/outbound/expression-splitter-async-test-flow.xml"}});
44 }
45
46 public ExpressionSplitterAsyncTestCase(ConfigVariant variant, String configResources)
47 {
48 super(variant, configResources);
49 }
50
51 @Test
52 public void testSplitter() throws Exception
53 {
54 FruitBowl fruitBowl = new FruitBowl(new Apple(), new Banana());
55 fruitBowl.addFruit(new Orange());
56
57 MuleClient client = new MuleClient(muleContext);
58 MuleMessage request = new DefaultMuleMessage(fruitBowl, muleContext);
59
60 client.dispatch("vm://distributor.queue", request);
61
62 List<Object> results = new ArrayList<Object>(3);
63
64 MuleMessage result = client.request("vm://collector.queue", 5000);
65 assertNotNull(result);
66 assertEquals(request.getMessageRootId(), result.getMessageRootId());
67 results.add(result.getPayload());
68
69 result = client.request("vm://collector.queue", 3000);
70 assertNotNull(result);
71 assertEquals(request.getMessageRootId(), result.getMessageRootId());
72 results.add(result.getPayload());
73
74 result = client.request("vm://collector.queue", 3000);
75 assertNotNull(result);
76 assertEquals(request.getMessageRootId(), result.getMessageRootId());
77 results.add(result.getPayload());
78
79 assertTrue(results.contains("Apple Received in ServiceOne"));
80 assertTrue(results.contains("Banana Received in ServiceTwo"));
81 assertTrue(results.contains("Orange Received in ServiceThree"));
82 }
83 }