public void TestConnecting() { TcpPeerMessenger messenger1 = new TcpPeerMessenger(new MessageSerializer()); TcpPeerMessenger messenger2 = new TcpPeerMessenger(new MessageSerializer()); TcpPeerMessenger messenger3 = new TcpPeerMessenger(new MessageSerializer()); async Task testAction() { int acceptedClientsCount = 0; messenger3.ClientAccepted += (s, a) => acceptedClientsCount++; IPEndPoint endPoint3 = GetMessengerEndPoint(messenger3); await messenger1.ConnectToAsync(endPoint3); await messenger2.ConnectToAsync(endPoint3); await Task.Delay(300); Assert.Equal(2, acceptedClientsCount); Assert.Equal(2, messenger3.TcpClients.Count); Assert.Equal(1, messenger1.TcpClients.Count); Assert.Equal(1, messenger2.TcpClients.Count); Assert.Equal(endPoint3.Port, ((IPEndPoint)(messenger1.TcpClients.First().Client.RemoteEndPoint)).Port); } StartMessengersAndExecuteActionWhenAllStarted(new[] { messenger1, messenger2, messenger3 }, testAction); }
public void TestCommunication() { TcpPeerMessenger messenger1 = new TcpPeerMessenger(new MessageSerializer()); TcpPeerMessenger messenger2 = new TcpPeerMessenger(new MessageSerializer()); async Task testAction() { string messageTextSendBy1 = "Hi"; string messageTextSendBy2 = "Hello"; IPEndPoint endPoint1 = null; messenger2.ClientAccepted += (s, e) => endPoint1 = e; Message messageReceivedFrom1 = null; messenger2.MessageReceived += (s, msg) => messageReceivedFrom1 = msg; Message messageReceivedFrom2 = null; messenger1.MessageReceived += (s, msg) => { messageReceivedFrom2 = msg; }; IPEndPoint endPoint2 = GetMessengerEndPoint(messenger2); await messenger1.ConnectToAsync(endPoint2); await messenger1.SendMessageAsync(endPoint2, messageTextSendBy1); await messenger2.SendMessageAsync(endPoint1, messageTextSendBy2); await Task.Delay(300); Assert.Equal(messageReceivedFrom1.Body, messageTextSendBy1); Assert.Equal(messageReceivedFrom2.Body, messageTextSendBy2); } StartMessengersAndExecuteActionWhenAllStarted(new[] { messenger1, messenger2 }, testAction); }