public async void NetworkImitatorReceiveTestLoop() { var bytesToSend = new byte[] { 0b00110000, 0b00110011 }; var bytesReceived = new byte[1024]; var size = 0; var socket1 = new SocketTester(); var socket2 = new SocketTester(); var networkImitator = new NetworkImitator(socket1, socket2); for (int i = 0; i < 3; i++) { var receivedTask = new TaskCompletionSource <bool>(); bytesReceived = new byte[1024]; Task.Run(async() => { size = socket2.Receive(bytesReceived); receivedTask.SetResult(true); }); await Task.Delay(500); socket1.Send(bytesToSend); await receivedTask.Task; var pureReceived = bytesReceived.Take(size).ToArray(); Assert.Equal(bytesToSend, pureReceived); } }
public async void NetworkImitatorDisconnectedTest() { var receivedTask = new TaskCompletionSource <bool>(); var bytesReceived = new byte[1024]; var size = 0; var socket2 = new SocketTester(); bytesReceived = new byte[1024]; Task.Run(async() => { socket2.Connect(new IPAddress(0), 0); size = socket2.Receive(bytesReceived); receivedTask.SetResult(true); }); await Task.Delay(500); socket2.RaiseDisconnected(); await receivedTask.Task; Assert.Equal(0, size); Assert.False(socket2.Connected); }