1   
2   package org.neo.swarm.util.network.jrms;
3   
4   import java.net.InetAddress;
5   
6   import junit.framework.TestCase;
7   
8   import org.neo.swarm.util.network.jxta.JXReciever;
9   import org.neo.swarm.util.network.jxta.JXSender;
10  import org.neo.swarm.util.network.multicast.MulticastReader;
11  import org.neo.swarm.util.network.multicast.MulticastSender;
12  import org.neo.swarm.util.network.multicast.Receiver;
13  import org.neo.swarm.util.network.multicast.Sender;
14  
15  
16  /***
17   * 
18   * @author navery
19   */
20  public class JRMSTest extends TestCase {
21  	private static String PAD = "BytePaddingMessageThatDoesStuffXXXXYYYZZZAABBCCAADDEEFFQQWWEERRTTYY";	
22  	
23  	public void testSendAndReceive() throws Exception {
24  
25  		Sender sender = new JRMSSender(InetAddress.getByName("225.0.0.1"), 5000);
26  		Receiver receiver = new JRMSReceiver(InetAddress.getByName("225.0.0.1"), 5000);
27  
28  		String expectedMessage = "JRMS-Blah!";
29  		sender.send(expectedMessage.getBytes());
30  		byte[] result = receiver.read();
31  		System.out.println(new String(result));
32  		assertEquals(expectedMessage, new String(result));
33  	}
34  	
35  	/***
36  	 * Max msg size is 1K !!
37  	 */
38  	public void testLargePackets() throws Exception {
39  		Sender sender = new JRMSSender(InetAddress.getByName("225.0.0.1"), 5000);
40  		Receiver receiver = new JRMSReceiver(InetAddress.getByName("225.0.0.1"), 5000);
41  			
42  		byte[] data = makeMessage(1 * 1024);
43  		for (int i = 0; i < 100; i++){
44  			sender.send(data);
45  			receiver.read();
46  			System.out.println(i);
47  		}
48  	}
49  
50  	private byte[] makeMessage(int size) throws Exception {
51  		byte[] sendMessage = new byte[size];
52  		
53  		byte[] padding = PAD.getBytes();
54  
55  		// fill the buffer
56  		int pos = 0;
57  		while (pos < size) {
58  			sendMessage[pos] = padding[pos++ % padding.length];
59  		}
60  		return sendMessage;
61  	}
62  	
63  }