Exemplo n.º 1
0
        public async Task WhenReceivingData_TriggerDataReceivedEvent()
        {
            var pause        = new ManualResetEvent(false);
            var data         = "test";
            var dataReceived = string.Empty;

            using (var tcpClient = new TcpClientConnection())
            {
                tcpClient.DataReceived += (s, e) =>
                {
                    dataReceived = e.Data;
                    pause.Set();
                };
                await tcpClient.ConnectAsync(HOST, PORT);

                using (var server = await connectionFixture.TcpListener.AcceptTcpClientAsync())
                {
                    using (var stream = new StreamWriter(server.GetStream()))
                    {
                        await stream.WriteLineAsync(data);

                        await stream.FlushAsync();

                        // Wait for the client to receive the data if necessary
                        Assert.True(pause.WaitOne(60000));
                    }
                }
            }

            Assert.Equal(data, dataReceived);
        }
Exemplo n.º 2
0
        public async Task WhenServerDisconnects_TrigerDisconnectedEvent()
        {
            var pauseConnected    = new ManualResetEvent(false);
            var pauseDisconnected = new ManualResetEvent(false);
            var pauseDataReceived = new ManualResetEvent(false);

            using (var tcpClient = new TcpClientConnection())
            {
                tcpClient.Connected    += (s, e) => pauseConnected.Set();
                tcpClient.Disconnected += (s, e) => pauseDisconnected.Set();
                tcpClient.DataReceived += (s, e) => pauseDataReceived.Set();

                await tcpClient.ConnectAsync(HOST, PORT);

                using (var server = await connectionFixture.TcpListener.AcceptTcpClientAsync())
                {
                    // Wait for the client to be connected if necessary
                    Assert.True(pauseConnected.WaitOne(60000));

                    using (var stream = new StreamWriter(server.GetStream()))
                    {
                        await stream.WriteLineAsync("test");

                        await stream.FlushAsync();

                        // Wait for the client to receive the data if necessary
                        Assert.True(pauseDataReceived.WaitOne(60000));
                    }
                }
            }

            Assert.True(pauseDisconnected.WaitOne(60000));
        }
Exemplo n.º 3
0
        public async Task WhenConnected_TriggerConnectedEvent()
        {
            var pause = new ManualResetEvent(false);

            using (var tcpClient = new TcpClientConnection())
            {
                tcpClient.Connected += (s, e) => pause.Set();

                await tcpClient.ConnectAsync(HOST, PORT);

                await connectionFixture.TcpListener.AcceptTcpClientAsync();
            }

            Assert.True(pause.WaitOne(500));
        }
Exemplo n.º 4
0
        public async Task WhenReceivingDataWithNoDataReceivedHandler_ItShouldBeOK()
        {
            using (var tcpClient = new TcpClientConnection())
            {
                await tcpClient.ConnectAsync(HOST, PORT);

                using (var server = await connectionFixture.TcpListener.AcceptTcpClientAsync())
                {
                    using (var stream = new StreamWriter(server.GetStream()))
                    {
                        await stream.WriteLineAsync("test");

                        await stream.FlushAsync();
                    }
                }
            }
        }
Exemplo n.º 5
0
        public async Task WhenSendingData_ServerShouldReceiveIt()
        {
            var data         = "test";
            var dataReceived = string.Empty;

            using (var tcpClient = new TcpClientConnection())
            {
                await tcpClient.ConnectAsync(HOST, PORT);

                using (var server = await connectionFixture.TcpListener.AcceptTcpClientAsync())
                {
                    using (var stream = new StreamReader(server.GetStream()))
                    {
                        await tcpClient.SendAsync(data);

                        dataReceived = await stream.ReadLineAsync();
                    }
                }
            }

            Assert.Equal(data, dataReceived);
        }