1
2
3
4
5
6
7 package org.mule.test.integration.routing.outbound;
8
9 import org.mule.api.MuleMessage;
10 import org.mule.module.client.MuleClient;
11 import org.mule.tck.junit4.FunctionalTestCase;
12
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.List;
16 import java.util.Map;
17
18 import org.junit.Test;
19
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertTrue;
22
23 public class ExpressionRecipientListAsyncTestCase extends FunctionalTestCase
24 {
25
26 @Override
27 protected String getConfigResources()
28 {
29 return "org/mule/test/integration/routing/outbound/expression-recipient-list-async-test.xml";
30 }
31
32 @Test
33 public void testRecipientList() throws Exception
34 {
35 String message = "test";
36 MuleClient client = new MuleClient(muleContext);
37 Map<String, Object> props = new HashMap<String, Object>(3);
38 props.put("recipient1", "vm://service1.queue");
39 props.put("recipient2", "vm://service2.queue");
40 props.put("recipient3", "vm://service3.queue");
41 client.dispatch("vm://distributor.queue", message, props);
42
43 List<Object> results = new ArrayList<Object>(3);
44
45 MuleMessage result = client.request("vm://collector.queue", 5000);
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 result = client.request("vm://collector.queue", 3000);
54 assertNotNull(result);
55 results.add(result.getPayload());
56
57 assertTrue(results.contains("test 1 Received"));
58 assertTrue(results.contains("test 2 Received"));
59 assertTrue(results.contains("test 3 Received"));
60 }
61 }