1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.routing.outbound;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.api.MuleMessageCollection;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.AbstractServiceAndFlowTestCase;
17
18 import java.util.Arrays;
19 import java.util.Collection;
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import org.junit.Test;
24 import org.junit.runners.Parameterized.Parameters;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
29
30 public class ExpressionRecipientListSyncTestCase extends AbstractServiceAndFlowTestCase
31 {
32 @Parameters
33 public static Collection<Object[]> parameters()
34 {
35 return Arrays.asList(new Object[][]{
36 {ConfigVariant.SERVICE, "org/mule/test/integration/routing/outbound/expression-recipient-list-sync-test-service.xml"},
37 {ConfigVariant.FLOW, "org/mule/test/integration/routing/outbound/expression-recipient-list-sync-test-flow.xml"}
38 });
39 }
40
41 public ExpressionRecipientListSyncTestCase(ConfigVariant variant, String configResources)
42 {
43 super(variant, configResources);
44 }
45
46 @Test
47 public void testRecipientList() throws Exception
48 {
49 String message = "test";
50 MuleClient client = new MuleClient(muleContext);
51 Map<String, Object> props = new HashMap<String, Object>(3);
52 props.put("recipient1", "vm://service1.queue?exchangePattern=request-response");
53 props.put("recipient2", "vm://service2.queue?exchangePattern=request-response");
54 props.put("recipient3", "vm://service3.queue?exchangePattern=request-response");
55 MuleMessage result = client.send("vm://distributor.queue", message, props);
56
57 assertNotNull(result);
58
59 assertTrue(result instanceof MuleMessageCollection);
60 MuleMessageCollection coll = (MuleMessageCollection)result;
61 assertEquals(3, coll.size());
62 MuleMessage[] results = coll.getMessagesAsArray();
63
64 for (int i = 0; i < results.length; i++)
65 {
66 MuleMessage muleMessage = results[i];
67 assertEquals("test " + (i+1) + " Received", muleMessage.getPayload());
68 }
69 }
70 }