1   /*
2    * Created on Mar 22, 2004
3    *
4    */
5   package org.neo.swarm.util.network.multicast;
6   
7   import java.net.InetAddress;
8   import java.util.ArrayList;
9   
10  import junit.framework.TestCase;
11  
12  /***
13   * @author navery
14   *
15   */
16  public class MulticastTest extends TestCase {
17  	private static String PAD = "BytePaddingMessageThatDoesStuffXXXXYYYZZZAABBCCAADDEEFFQQWWEERRTTYY";	
18  	public static boolean called = false;
19  	
20  	public void testStuff() throws Exception {
21  
22  		MulticastReader reader = new MulticastReader(InetAddress.getByName("225.0.0.1"), 5000, 0);
23          
24  		Thread sender = new Thread() {
25  			public void run() {
26  				MulticastSender sender = null;
27  				try {
28  					sender = new MulticastSender(InetAddress.getByName("225.0.0.1"), 5000, false);
29  				sender.send("blah".getBytes());
30  				called = true;
31                  } catch (Exception e) {
32                      e.printStackTrace();
33                  }
34  
35  			}
36  		};
37  
38  		sender.start();
39  		reader.read();
40  	
41  		int wait = 0;
42  		while (!called && wait < 3){
43  			Thread.sleep(1000);
44  		}	
45  		assertTrue(called);
46  	}
47      
48  	public void testLoadedSender() throws Exception {
49  		MulticastReader reader = new MulticastReader(InetAddress.getByName("225.0.0.1"), 5000, 0);
50  		int numberOfSenders = 10;
51          
52  		ArrayList senders = new ArrayList();
53  		
54          for (int i = 0; i < numberOfSenders; i++){
55  			
56  			Thread sender = new Thread() {
57  				public void run() {
58  					MulticastSender sender;
59  					try {
60  						sender = new MulticastSender(InetAddress.getByName("225.0.0.1"), 5000, false);
61  						for (int i = 0; i < 10; i++) {
62  							//			sender.send("blah".getBytes());
63  				//			System.out.println("send>>" + i);
64  							sender.send(makeMessage(14 * 1024));
65  						}
66  					} catch (Exception e) {
67  						e.printStackTrace();
68  					}
69  				}
70  			};
71  			senders.add(sender);
72  		}
73  		for (int i = 0; i < numberOfSenders; i++){
74  			Thread sender = (Thread) senders.get(i);
75  			sender.start();
76  		}
77  		for (int i = 0; i < numberOfSenders; i++){		
78  			reader.read();
79  			//System.out.println(result);
80  		}
81  	}
82      
83  	static byte[] makeMessage(int size) throws Exception {
84  		byte[] sendMessage = new byte[size];
85  		
86  		byte[] padding = PAD.getBytes();
87  
88  		// fill the buffer
89  		int pos = 0;
90  		while (pos < size) {
91  			sendMessage[pos] = padding[pos++ % padding.length];
92  		}
93  		return sendMessage;
94  	}
95  }