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