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 import org.mule.tck.testmodels.fruit.Apple;
13 import org.mule.tck.testmodels.fruit.Banana;
14 import org.mule.tck.testmodels.fruit.FruitBowl;
15 import org.mule.tck.testmodels.fruit.Orange;
16
17 import java.util.ArrayList;
18 import java.util.List;
19
20 import org.junit.Test;
21
22 import static org.junit.Assert.assertNotNull;
23 import static org.junit.Assert.assertTrue;
24
25 public class MulticastAsyncWithTransformersTestCase extends FunctionalTestCase
26 {
27
28 @Override
29 protected String getConfigResources()
30 {
31 return "org/mule/test/integration/routing/outbound/multicaster-async-with-transformers-test.xml";
32 }
33
34 @Test
35 public void testSyncMulticast() throws Exception
36 {
37 FruitBowl fruitBowl = new FruitBowl(new Apple(), new Banana());
38 fruitBowl.addFruit(new Orange());
39
40 MuleClient client = new MuleClient(muleContext);
41 client.dispatch("vm://distributor.queue", fruitBowl, null);
42
43 List<Object> results = new ArrayList<Object>(3);
44
45
46 MuleMessage result = client.request("vm://collector.queue", 5000);
47 assertNotNull(result);
48 results.add(result.getPayload());
49
50 result = client.request("vm://collector.queue", 3000);
51 assertNotNull(result);
52 results.add(result.getPayload());
53
54 result = client.request("vm://collector.queue", 3000);
55 assertNotNull(result);
56 results.add(result.getPayload());
57
58 assertTrue(results.contains("Apple Received"));
59 assertTrue(results.contains("Banana Received"));
60 assertTrue(results.contains("Orange Received"));
61 }
62 }