Exemplo n.º 1
0
        public void MyTestInitialize()
        {
            _client = new TestablePNet();
            _client.TestableHook.StartUpdateThread();

            _testRoom = Room.CreateRoom("test room");
            _testRoom2 = Room.CreateRoom("test room 2");
        }
Exemplo n.º 2
0
        public void MyTestInitialize()
        {
            _client = new TestablePNet();
            _client.TestableHook.StartUpdateThread();

            _client.OnRoomChange += s => _client.FinishedRoomChange();
            PNetServer.OnPlayerConnected += player => player.ChangeRoom(_testRoom);

            _testRoom = Room.CreateRoom("test room");

            _client.Connect(TestablePNet.GetTestConnectionConfig());
            Thread.Sleep(250);
            _player = PNetServer.AllPlayers().First(f => f != null && f != Player.Server);
        }
Exemplo n.º 3
0
        public void TestConnecting()
        {
            //setup a default server
            ServerUtils.SetupDefaultServer();
            ServerUtils.StartServerOnNewThread();

            var client = new TestablePNet();
            client.TestableHook.StartUpdateThread();
            client.OnFailedToConnect += s => Assert.Fail("Failed to connect: {0}", s);

            //the client should connect and disconnect quickly
            client.Connect(TestablePNet.GetTestConnectionConfig());
            Thread.Sleep(200);
            Assert.AreEqual(client.Status, NetConnectionStatus.Connected, "The client took longer than 200 ms to connect");
            
            client.Disconnect();
            Thread.Sleep(200);
            Assert.AreEqual(client.Status, NetConnectionStatus.Disconnected, "The client took longer than 200 ms to disconnect");

            //some cleanup
            ServerUtils.TeardownServer();
        }
Exemplo n.º 4
0
        public void RapidConnectionsTest()
        {
            const int ClientCount = 20;
            const int ClientConnectionTries = 5;
            const int ExpectedTotalConnections = ClientCount * ClientConnectionTries;

            ServerUtils.SetupDefaultServer();
            ServerUtils.StartServerOnNewThread();

            int cCount = 0;
            int dcCount = 0;

            PNetServer.OnPlayerConnected += player => Interlocked.Increment(ref cCount);
            PNetServer.OnPlayerDisconnected += player => Interlocked.Increment(ref dcCount);
            PNetServer.ApproveConnection += message =>
                                                {
                                                    Thread.Sleep(10);
                                                    message.SenderConnection.Approve();
                                                };

            var clients = new TestablePNet[ClientCount];
            for (int i = 0; i < clients.Length; i++)
            {
                clients[i] = new TestablePNet();
                clients[i].TestableHook.StartUpdateThread();
                int i1 = i;
                clients[i].OnFailedToConnect += s => Assert.Fail("{0} failed to connect: {1}", i1, s);
            }

            var connTasks = new List<Task>(clients.Length);
            Thread.Sleep(100); //wait for clients to start...
            for (int c = 0; c < clients.Length; c++)
            {
                var client = clients[c];
                int c1 = c;
                var task = new Task(() =>
                {
                    int connectCount = 0;
                    var config = TestablePNet.GetTestConnectionConfig();
                    client.OnFailedToConnect += s => Assert.Fail("{0} connect failed {1}", c1, s);
                    client.OnConnectedToServer += () =>
                    {
                        connectCount++;
                        Thread.Sleep(200);
                        client.Disconnect();
                    };
                    client.OnDisconnectedFromServer += () =>
                    {
                        if (connectCount < ClientConnectionTries)
                        {
                            client.Connect(config);
                        }
                    };
                    client.Connect(config);

                    while (connectCount < ClientConnectionTries)
                    {
                        Thread.Sleep(1);
                    }
                });
                connTasks.Add(task);
            }

            var aTasks = connTasks.ToArray();
            foreach (var task in aTasks)
            {
                task.Start();
            }

            Task.WaitAll(aTasks);

            Thread.Sleep(500);
            Assert.AreEqual(ExpectedTotalConnections, cCount, "Expected " + ExpectedTotalConnections + " connections but got " + cCount);
            Assert.AreEqual(ExpectedTotalConnections, dcCount, "Expected " + ExpectedTotalConnections + " disconnects but got " + dcCount);
            var ap = PNetServer.AllPlayers();
            foreach (var player in ap)
            {
                Assert.IsNull(player);
            }
        }
Exemplo n.º 5
0
 public void MyTestInitialize()
 {
     _net = new TestablePNet();
     _target = new NetworkViewManager(_net);
 }