Example #1
0
        public void UDPServer_ClientDisconnects_CallbackCalled()
        {
            //Arrange
            Client clientConnect    = null;
            Client clientDisconnect = null;

            udpServer = new UDPServerChannel("127.0.0.1", 0, 32);
            ObjectTransport serverObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpServer);

            serverObjectTransport.OnClientConnect(c => clientConnect       = c);
            serverObjectTransport.OnClientDisconnect(c => clientDisconnect = c);

            udpClient = new UDPClientChannel("127.0.0.1", udpServer.Port);
            ObjectTransport clientObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpClient);

            Utilities.WaitFor(ref clientConnect);
            Utilities.WaitFor(() => clientObjectTransport.GetConnectedClients().Count() == 1);
            //Act

            clientObjectTransport.Stop();

            Utilities.WaitFor(ref clientDisconnect);
            Utilities.Wait();
            //Assert
            Assert.AreEqual(clientConnect.IPAddress, "127.0.0.1");
            Assert.AreEqual(clientDisconnect.IPAddress, "127.0.0.1");
            Assert.AreEqual(clientDisconnect, clientConnect);
            Assert.AreEqual(0, clientObjectTransport.GetConnectedClients().Count());
            Assert.AreEqual(0, serverObjectTransport.GetConnectedClients().Count());
        }
        public void TCPServer_ClientDisconnects_CallbackCalled()
        {
            //Arrange
            Client clientConnect    = null;
            Client clientDisconnect = null;

            tcpserver.Start("127.0.0.1", 0);
            ObjectTransport serverObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(tcpserver);

            serverObjectTransport.OnClientConnect(c => clientConnect       = c);
            serverObjectTransport.OnClientDisconnect(c => clientDisconnect = c);

            tcpclient.Start("127.0.0.1", tcpserver.LocalPort);
            ObjectTransport clientObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(tcpclient);

            Utilities.WaitFor(ref clientConnect);
            Utilities.WaitFor(() => clientObjectTransport.GetConnectedClients().Count() == 1);
            //Act

            clientObjectTransport.Stop();

            Utilities.WaitFor(ref clientDisconnect);
            Utilities.Wait();
            //Assert
            Assert.AreEqual(clientConnect.IPAddress, "127.0.0.1");
            Assert.AreEqual(clientDisconnect.IPAddress, "127.0.0.1");
            Assert.AreEqual(clientDisconnect, clientConnect);
            Assert.AreEqual(0, clientObjectTransport.GetConnectedClients().Count());
            Assert.AreEqual(0, serverObjectTransport.GetConnectedClients().Count());
        }