1
2
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
63
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
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
89 int pos = 0;
90 while (pos < size) {
91 sendMessage[pos] = padding[pos++ % padding.length];
92 }
93 return sendMessage;
94 }
95 }