1 /*
2 * Created on 2004-12-22
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.ByteArrayInputStream;
10 import java.net.DatagramPacket;
11 import java.net.DatagramSocket;
12 import java.net.InetAddress;
13 import java.net.InetSocketAddress;
14 import java.net.SocketAddress;
15
16 import junit.framework.TestCase;
17
18 /***
19 * @author Develop
20 *
21 * TODO To change the template for this generated type comment go to Window -
22 * Preferences - Java - Code Style - Code Templates
23 */
24 public class ServerDataTest extends TestCase {
25 boolean connectReceived = false;
26
27 class TestClient extends Thread {
28 ServerData serverdata;
29
30 String connectData;
31
32 ServerDataTest parent;
33
34 public TestClient(ServerDataTest test) {
35 parent = test;
36 }
37
38 public void run() {
39 try {
40 //tworzymy nowy testowany obiekt
41 serverdata = new ServerData();
42
43 //tworzymy socketa na którym bêdzie on s³uchaæ
44 NetworkReceiver clientReceiver = new NetworkReceiver(0);
45 ReceivedPacketBuffer clientBuffer = new ReceivedPacketBuffer();
46 clientReceiver.connectToBuffer(clientBuffer);
47 clientBuffer.addObserver(serverdata);
48 clientReceiver.start();
49
50 //odpalamy testowan¹ metodê
51 connectData = serverdata.join(serverAddress);
52 parent.connectReceived = true;
53 } catch (Exception e) {
54
55 }
56 }
57 }
58
59 NetworkReceiver receiver;
60
61 ReceivedPacketBuffer buffer;
62
63 NetworkSender sender;
64
65 InetSocketAddress serverAddress = new InetSocketAddress("localhost", 4000);
66
67 TestObserver observer;
68
69 TestClientFacade clientFacade;
70
71 /*
72 * @see TestCase#setUp()
73 */
74 protected void setUp() throws Exception {
75 super.setUp();
76
77 NetworkClientFacadeHolder.setNetworkFacade(new TestClientFacade());
78 clientFacade = (TestClientFacade) NetworkClientFacadeHolder
79 .getNetworkFacade();
80
81 buffer = new ReceivedPacketBuffer();
82 sender = new NetworkSender();
83 }
84
85 /*
86 * @see TestCase#tearDown()
87 */
88 protected void tearDown() throws Exception {
89 receiver = null;
90 buffer = null;
91 observer = null;
92 sender = null;
93 super.tearDown();
94 }
95
96 public void testServerData() {
97
98 }
99
100 public void testJoin() throws Exception {
101 /*receiver = new NetworkReceiver(4000);
102 receiver.connectToBuffer(buffer);
103 observer = new TestObserver();
104 buffer.addObserver(observer);
105
106 receiver.start();
107 TestClient client = new TestClient(this);
108 client.start();
109
110 JoinPacket packet = null;
111 while ((packet = (JoinPacket) observer.getPacket()) == null)
112 ;
113 assertEquals("Niepoprawne dane odebrane z JoinPacket", packet
114 .getSourceAddress().getAddress().getHostName(), "localhost");
115
116 ConnectPacket connectPacket = new ConnectPacket();
117 connectPacket.setAvatarID("avatar0");
118 sender
119 .send(connectPacket, packet.getSourceAddress().getAddress(),
120 2000);
121 while (!connectReceived)
122 ;
123 assertEquals("Niepoprawne dane zwrócone przez join klienta", "avatar0",
124 client.connectData);
125 */
126 }
127
128 public void testUpdate() throws Exception {
129 /*
130 ServerData serverData = new ServerData();
131 buffer.addObserver(serverData);
132 UpdatePacket updatePacket = new UpdatePacket();
133 updatePacket.setUpdateData("update".getBytes());
134 updatePacket.setSeqNumber(1);
135 assertEquals("Zagubione pakiety w buforze", buffer.getPacketCount(), 0);
136
137 buffer.addPacket(updatePacket); //dodajemy pakiet "update" z
138 // localhosta
139 buffer.notifyObservers();
140 assertEquals("B³edny pakiet przes³any przez fasadê", new String(
141 clientFacade.getLastUpdate().getUpdateData()), "update");
142
143 updatePacket.setUpdateData("update".getBytes());
144 updatePacket.setSeqNumber(2);
145 buffer.addPacket(updatePacket); //dodajemy pakiet "update" z
146 // localhosta
147 buffer.notifyObservers(); //i wysy³amy go do ClientManagera
148
149 assertEquals("B³edny pakiet przes³any przez fasadê", new String(
150 clientFacade.getLastUpdate().getUpdateData()), "update");
151
152 //trzeci pakiet dla localhosta - z mniejszym numerem seq ni¿ ostatni
153 updatePacket.setSourceAddress(new InetSocketAddress(InetAddress
154 .getByName("localhost"), 2000));
155 updatePacket.setUpdateData("update".getBytes());
156 updatePacket.setSeqNumber(1);
157 buffer.addPacket(updatePacket); //dodajemy pakiet "update" z
158 // localhosta
159 buffer.notifyObservers(); //i wysy³amy go do ClientManagera*/
160 }
161
162 public void testSendUpdate() throws Exception {
163 /*receiver = new NetworkReceiver(3000);
164 receiver.connectToBuffer(buffer);
165 observer = new TestObserver();
166 buffer.addObserver(observer);
167
168 receiver.start();
169
170 UpdatePacket packet;
171
172 ServerData serverData = new ServerData();
173 serverData.setServerAddress(new InetSocketAddress("localhost", 3000));
174 serverData.sendUpdate("update1".getBytes());
175 while ((packet = (UpdatePacket) observer.getPacket()) == null)
176 ;
177 assertEquals("B³êdna zawartoœæ pakietu update 1", new String(packet
178 .getUpdateData()), "update1");
179
180 serverData.sendUpdate("update2".getBytes());
181 while ((packet = (UpdatePacket) observer.getPacket()) == null)
182 ;
183 assertEquals("B³êdna zawartoœæ pakietu update 1", new String(packet
184 .getUpdateData()), "update2");
185
186 serverData.sendUpdate("update3".getBytes());
187 serverData.sendUpdate("update4".getBytes());
188 while ((packet = (UpdatePacket) observer.getPacket()) == null)
189 ;
190 assertEquals("B³êdna zawartoœæ pakietu update 1", new String(packet
191 .getUpdateData()), "update4");*/
192 }
193
194 }