Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }