1
2
3
4
5
6
7
8
9
10 package org.mule.test.integration.routing.outbound;
11
12 import org.mule.api.MuleMessage;
13 import org.mule.module.client.MuleClient;
14 import org.mule.tck.FunctionalTestCase;
15 import org.mule.tck.testmodels.fruit.Apple;
16 import org.mule.tck.testmodels.fruit.Banana;
17 import org.mule.tck.testmodels.fruit.FruitBowl;
18 import org.mule.tck.testmodels.fruit.Orange;
19
20 import java.util.ArrayList;
21 import java.util.List;
22
23 public class ExpressionSplitterAsyncTestCase extends FunctionalTestCase
24 {
25 @Override
26 protected String getConfigResources()
27 {
28 return "org/mule/test/integration/routing/outbound/expression-splitter-async-test.xml";
29 }
30
31 public void testSplitter() throws Exception
32 {
33 FruitBowl fruitBowl = new FruitBowl(new Apple(), new Banana());
34 fruitBowl.addFruit(new Orange());
35
36 MuleClient client = new MuleClient(muleContext);
37 client.dispatch("vm://distributor.queue", fruitBowl, null);
38
39 List<Object> results = new ArrayList<Object>(3);
40
41 MuleMessage result = client.request("vm://collector.queue", 5000);
42 assertNotNull(result);
43 results.add(result.getPayload());
44
45 result = client.request("vm://collector.queue", 3000);
46 assertNotNull(result);
47 results.add(result.getPayload());
48
49 result = client.request("vm://collector.queue", 3000);
50 assertNotNull(result);
51 results.add(result.getPayload());
52
53 assertTrue(results.contains("Apple Received in ServiceOne"));
54 assertTrue(results.contains("Banana Received in ServiceTwo"));
55 assertTrue(results.contains("Orange Received in ServiceThree"));
56 }
57
58 }