1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers.multicast;
12
13 import org.mule.extras.client.MuleClient;
14 import org.mule.tck.FunctionalTestCase;
15
16 import java.util.HashSet;
17 import java.util.Set;
18
19 public class MulticastConnectorFunctionalTestCase extends FunctionalTestCase
20 {
21 public static final String MESSAGE = "hello";
22
23
24 protected String getConfigResources()
25 {
26 return "multicast-functional-test.xml";
27 }
28
29 public void testSendTestData() throws Exception
30 {
31 final int numberOfMessages = 100;
32 MuleClient client = new MuleClient();
33
34 for (int sentPackets = 0; sentPackets < numberOfMessages; sentPackets++)
35 {
36 String msg = MESSAGE + sentPackets;
37 client.dispatch("serverEndpoint", msg, null);
38 }
39
40 int broadcastMessages = numberOfMessages * 3;
41 Set receivedMessages = new HashSet(broadcastMessages);
42
43 int receivedPackets = 0;
44 for (; receivedPackets < broadcastMessages; receivedPackets++)
45 {
46 receivedMessages.add(client.receive("vm://foo", 2000).getPayloadAsString());
47
48 }
49
50 assertEquals(broadcastMessages, receivedPackets);
51
52
53 checkBroadcastMessagesForComponent(receivedMessages, "Component1");
54
55
56 checkBroadcastMessagesForComponent(receivedMessages, "Component2");
57
58
59 checkBroadcastMessagesForComponent(receivedMessages, "Component3");
60
61 assertEquals(0, receivedMessages.size());
62 }
63
64 protected void checkBroadcastMessagesForComponent(Set receivedMessages, String name)
65 {
66
67 for (int x = 0; x <100; x++)
68 {
69 String expected = MESSAGE + x + " Received " + name;
70
71 assertTrue(receivedMessages.contains(expected));
72 assertTrue(receivedMessages.remove(expected));
73 }
74 }
75 }