1
2
3
4
5
6
7 package org.mule.transport.multicast;
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.HashSet;
14 import java.util.Set;
15
16 import org.junit.Test;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNotNull;
20 import static org.junit.Assert.assertTrue;
21
22 public class MulticastConnectorFunctionalTestCase extends FunctionalTestCase
23 {
24
25 public static final String MESSAGE = "hello";
26
27 @Override
28 protected String getConfigResources()
29 {
30 return "multicast-functional-test.xml";
31 }
32
33 @Test
34 public void testSendTestData() throws Exception
35 {
36 final int numberOfMessages = 2;
37 MuleClient client = new MuleClient(muleContext);
38
39 logger.debug("sending messages");
40 for (int sentPackets = 0; sentPackets < numberOfMessages; sentPackets++)
41 {
42 String msg = MESSAGE + sentPackets;
43 client.dispatch("serverEndpoint", msg, null);
44 }
45
46 int broadcastMessages = numberOfMessages * 3;
47 Set receivedMessages = new HashSet(broadcastMessages);
48
49 logger.debug("receiving messages");
50 int receivedPackets = 0;
51 for (; receivedPackets < broadcastMessages; receivedPackets++)
52 {
53 MuleMessage message = client.request("vm://foo", 2000);
54 assertNotNull(message);
55 receivedMessages.add(message.getPayloadAsString());
56 }
57
58 assertEquals(broadcastMessages, receivedPackets);
59
60
61 checkBroadcastMessagesForComponent(numberOfMessages, receivedMessages, "Component1");
62
63
64 checkBroadcastMessagesForComponent(numberOfMessages, receivedMessages, "Component2");
65
66
67 checkBroadcastMessagesForComponent(numberOfMessages, receivedMessages, "Component3");
68
69 assertEquals(0, receivedMessages.size());
70 }
71
72 protected void checkBroadcastMessagesForComponent(int numberOfMessages,
73 Set receivedMessages, String name)
74 {
75
76 for (int x = 0; x < numberOfMessages; x++)
77 {
78 String expected = MESSAGE + x + name;
79
80 assertTrue(receivedMessages.contains(expected));
81 assertTrue(receivedMessages.remove(expected));
82 }
83 }
84
85 }