1   /*
2    * Created on 2004-12-23
3    *
4    * TODO To change the template for this generated file go to
5    * Window - Preferences - Java - Code Style - Code Templates
6    */
7   package org.sourceforge.jvb3d.Network;
8   
9   import java.io.IOException;
10  import java.net.InetAddress;
11  
12  import junit.framework.TestCase;
13  
14  /***
15   * @author Develop
16   * 
17   * TODO To change the template for this generated type comment go to Window -
18   * Preferences - Java - Code Style - Code Templates
19   */
20  public class SenderReceiverTest extends TestCase {
21  	class TestSender extends Thread {
22  		NetworkSender sender;
23  
24  		UpdatePacket packet;
25  
26  		TestSender() throws IOException {
27  			sender = new NetworkSender();
28  			packet = new UpdatePacket();
29  		}
30  
31  		public void run() {
32  			for (int i = 0; i < 10; i++) {
33  				packet.setUpdateData(("update" + i).getBytes());
34  				try {
35  					sender.send(packet, InetAddress.getByName("localhost"),
36  							2004);
37  					Thread.sleep(100);
38  				} catch (Exception e) {
39  					fail("TestSender - wyjątek: " + e);
40  				}
41  			}
42  		}
43  	}
44  
45  	public void testRun() throws Exception {
46  		NetworkReceiver receiver = new NetworkReceiver(2004);
47  		ReceivedPacketBuffer buffer = new ReceivedPacketBuffer();
48  		receiver.connectToBuffer(buffer);
49  		TestObserver observer = new TestObserver();
50  		buffer.addObserver(observer);
51  		receiver.start();
52  
53  		TestSender sender = new TestSender();
54  		sender.start();
55  
56  		Packet packet = null;
57  		for (int i = 0; i < 10; i++) {
58  			try {
59  				int j=0;
60  				while ((packet = observer.getPacket()) == null && j++ < 10)
61  					Thread.sleep(100);
62  				assertEquals("Zły pakiet otrzymany", new String(((UpdatePacket)packet).getUpdateData()), "update"+i);
63  			} catch (Exception e) {
64  				fail("testRun - złapano wyjątek: " + e);
65  			}
66  		}
67  		receiver.finish();
68  	}
69  }