View Javadoc

1   /*
2    * $Id: MulticastConnectorFunctionalTestCase.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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; //3 components
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          //Check all broadcasts were received from Component1
57          checkBroadcastMessagesForComponent(numberOfMessages, receivedMessages, "Component1");
58  
59          //Check all broadcasts were received from Component2
60          checkBroadcastMessagesForComponent(numberOfMessages, receivedMessages, "Component2");
61  
62          //Check all broadcasts were received from Component3
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          //Check all broadcasts were received from component <name>
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  }