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