1
2
3
4
5
6
7 package org.sourceforge.jvb3d.Network;
8
9 import java.awt.GraphicsConfiguration;
10 import java.net.InetSocketAddress;
11
12 import javax.media.j3d.Canvas3D;
13
14 import org.sourceforge.jvb3d.Model.IModelNetwork;
15 import org.sourceforge.jvb3d.Model.Model;
16
17 import com.sun.j3d.utils.universe.SimpleUniverse;
18
19 import junit.framework.TestCase;
20
21 /***
22 * @author Develop
23 *
24 * TODO To change the template for this generated type comment go to Window -
25 * Preferences - Java - Code Style - Code Templates
26 */
27 public class ClientServerTest extends TestCase {
28 static IModelNetwork modelInterface;
29
30 class TestClient extends Thread {
31 NetworkClientFacade networkFacade;
32
33 boolean terminated = false;
34
35 String avatar;
36
37 TestClient() {
38 NetworkClientFacadeHolder.setNetworkFacade(new ClientFacade());
39 networkFacade = NetworkClientFacadeHolder.getNetworkFacade();
40 networkFacade.setModelInterface(modelInterface);
41 }
42
43 public void run() {
44 try {
45 avatar = networkFacade.join(new InetSocketAddress(
46 "localhost", 4000));
47 assertEquals("Otrzymano z³y ID klienta od serwera", avatar, "0");
48 networkFacade.sendUpdate("0");
49 terminated = true;
50 } catch (Exception e) {
51 e.printStackTrace();
52 }
53 }
54 }
55
56 class TestServer extends Thread {
57 NetworkServerFacade networkFacade;
58
59 boolean terminated = false;
60
61 TestServer() {
62 NetworkServerFacadeHolder.setNetworkFacade(new ServerFacade());
63 networkFacade = NetworkServerFacadeHolder.getNetworkFacade();
64 networkFacade.setModelInterface(modelInterface);
65 }
66
67 public void run() {
68 try {
69 networkFacade.start(4000);
70 Thread.sleep(300);
71 networkFacade.sendAllUpdate();
72 Thread.sleep(3000);
73 terminated = true;
74 } catch (Exception e) {
75 e.printStackTrace();
76 }
77 }
78 }
79
80 protected void setUp() throws Exception {
81 super.setUp();
82 GraphicsConfiguration config =
83 SimpleUniverse.getPreferredConfiguration();
84
85 Canvas3D canvas3D = new Canvas3D(config);
86
87 modelInterface = new Model(canvas3D,false);
88 }
89
90
91
92
93 protected void tearDown() throws Exception {
94 modelInterface = null;
95 super.tearDown();
96 }
97
98 public void testRun() throws Exception {
99 TestClient client = new TestClient();
100 TestServer server = new TestServer();
101 server.start();
102 client.start();
103 while (!client.terminated && !server.terminated)
104 Thread.sleep(1000);
105 }
106 }