public void UDPClient_ClientDisconnectsServer_ServerOnClientDisconnectCalled() { //Arrange Client disconnectedClient = null; Client connectedServer = null; udpServer = new UDPServerChannel("127.0.0.1", 0, 32); ObjectTransport serverObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpServer); serverObjectTransport.OnClientDisconnect(c => disconnectedClient = c); udpClient = new UDPClientChannel("127.0.0.1", udpServer.LocalPort); ObjectTransport clientObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpClient); clientObjectTransport.OnClientConnect(c => connectedServer = c); udpClient2 = new UDPClientChannel("127.0.0.1", udpServer.LocalPort); ObjectTransport clientObjectTransport2 = TestObjectTransportFactory.CreateNewObjectTransport(udpClient2); Utilities.WaitFor(() => serverObjectTransport.GetConnectedClients().Count() == 2); //Act //disconnect the server from the client clientObjectTransport.DisconnectClient(); Utilities.WaitFor(ref disconnectedClient); //Assert //Ensure that the client record was disconnect from the server Assert.AreEqual(1, serverObjectTransport.GetConnectedClients().Count()); //Esnure that the client who disconnected from the server was the one that we called disconect Assert.AreEqual(disconnectedClient.Port, udpClient.LocalPort); }
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()); }
static void Main(string[] args) { Console.WriteLine("Welcome to this simple Chat room!"); Console.WriteLine("Would you like to:"); Console.WriteLine("1) Create a TCP server"); Console.WriteLine("2) Connect to TCP server"); Console.WriteLine("3) Creaet a UDP server"); Console.WriteLine("4) Connect to UDP server"); string answer = Console.ReadLine(); ObjectTransport transport = transport = CheckCreateTransport(answer); if (transport == null) { return; } //Write to console when a client connects transport.OnClientConnect(c => Console.WriteLine("{0} - Client connected", c.IPAddress)); //Write to console when a client disconnects transport.OnClientDisconnect(c => Console.WriteLine("{0} - Client disconnected", c.IPAddress)); string message; while (true) { message = Console.ReadLine(); if (message == "exit") { break; } transport.Send(new Message() { Body = message }) .ToAll() .Execute(); } }
public void OnClientConnect_ClientConnectsToObject_ClientInjectedIntoAction() { //Arrange var sentJson = string.Empty; var client = new Client("10.0.0.1", 123); var networkChannel = MockNetworkChannelFactory.GetMockedNetworkChannel(); Client connectedClient = null; //Act ObjectTransport transport = TestObjectTransportFactory.CreateNewObjectTransport(networkChannel); transport.OnClientConnect(c => { connectedClient = c; }); networkChannel.SimulateClientConnect(client); //Assert Assert.AreEqual(client, connectedClient); }
public void UDPServer_SendObject_CorrectObjectSent() { //Arrange MockObjectMessage receivedObject = null; udpServer = new UDPServerChannel("127.0.0.1", 0, 32); Client client = null; ObjectTransport serverObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpServer); serverObjectTransport.OnClientConnect(c => client = c); udpClient = new UDPClientChannel("127.0.0.1", udpServer.Port); ObjectTransport clientObjectTransport = TestObjectTransportFactory.CreateNewObjectTransport(udpClient); Utilities.WaitFor(ref client); //Act clientObjectTransport.Receive <MockObjectMessage>(o => receivedObject = o ).Execute(); serverObjectTransport.Send(new MockObjectMessage() { Property1_string = "hello world!", Property2_int = 123, Property3_decimal = 12.3M }) .To(client) .Execute(); Utilities.WaitFor(ref receivedObject); //Assert Assert.AreEqual("hello world!", receivedObject.Property1_string); Assert.AreEqual(123, receivedObject.Property2_int); Assert.AreEqual(12.3M, receivedObject.Property3_decimal); }