public void MyTestInitialize() { _client = new TestablePNet(); _client.TestableHook.StartUpdateThread(); _testRoom = Room.CreateRoom("test room"); _testRoom2 = Room.CreateRoom("test room 2"); }
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); }
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(); }
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); } }
public void MyTestInitialize() { _net = new TestablePNet(); _target = new NetworkViewManager(_net); }