Ejemplo n.º 1
0
        public void Close_ClientConnected_ClientDisconnected()
        {
            // Arrange
            int timesConnectedChangedRaised = 0;
            var actualConnectedStates       = new List <bool>();

            var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT));

            client.ConnectChanged += (sender, args) =>
            {
                timesConnectedChangedRaised++;
                actualConnectedStates.Add(args.Connected);
            };

            var connectionTask = client.ConnectAsync();

            connectionTask.Wait(TimeSpan.FromSeconds(1));

            // Act
            client.Close();

            // Assert
            var expectedConnectedStates = new List <bool>
            {
                true,
                false
            };

            CollectionAssert.AreEquivalent(expectedConnectedStates, actualConnectedStates);
            Assert.AreEqual(2, timesConnectedChangedRaised);
        }
Ejemplo n.º 2
0
        public void Write_TcpListenerAvailable_SendSuccessful()
        {
            using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT)))
            {
                // Arrange
                var dataToWrite = new byte[]
                {
                    0x00,
                    0x01,
                    0x02
                };
                var acceptTcpClientTask = tcpListener.AcceptTcpClientAsync();
                var connectionTask      = client.ConnectAsync();
                connectionTask.Wait(TimeSpan.FromSeconds(1));

                var acceptedTcpClient = acceptTcpClientTask.Result;

                var buffer   = new byte[1024];
                var readTask = acceptedTcpClient.GetStream().ReadAsync(buffer, 0, buffer.Length);

                // Act
                var result = client.Send(dataToWrite);
                readTask.Wait(TimeSpan.FromMilliseconds(100));
                // Assert
                Assert.IsTrue(result);
                var receivedData = new byte[readTask.Result];
                Array.Copy(buffer, receivedData, receivedData.Length);
                Assert.AreEqual(dataToWrite, receivedData);
            }
        }
Ejemplo n.º 3
0
 public void Dispose_CallTwice_DoesNotThrow()
 {
     // Arrange
     using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT)))
     {
         // Assert
         Assert.DoesNotThrow(() =>
         {
             client.Dispose();
             client.Dispose();
         });
     }
 }
Ejemplo n.º 4
0
 public void Close_CallTwice_ThrowObjectDisposedException()
 {
     // Arrange
     using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT)))
     {
         // Assert
         Assert.Throws <ObjectDisposedException>(() =>
         {
             client.Close();
             client.Close();
         });
     }
 }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Task.Factory.StartNew(() =>
            {
                var localEndPoint      = new IPEndPoint(IPAddress.Loopback, 10002);
                var client             = new DataStreamingClient(localEndPoint);
                client.ConnectChanged += Client_ConnectChanged;
                client.DataReceived   += Client_DataReceived;

                var connectTask = client.ConnectAsync();
                connectTask.Wait();
                Logger.Log($"Finish connection task with {localEndPoint}", LogLevel.Info);
            });

            var manualResetEvent = new ManualResetEvent(false);

            manualResetEvent.WaitOne();
        }
Ejemplo n.º 6
0
        public void ConnectAsync_TcpListenerAvailable_ClientConnects()
        {
            using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT)))
            {
                // Arrange
                int timesConnectedChangedRaised = 0;
                var isConnected = false;

                client.ConnectChanged += (sender, args) =>
                {
                    timesConnectedChangedRaised++;
                    isConnected = args.Connected;
                };

                // Act
                var connectionTask = client.ConnectAsync();
                connectionTask.Wait(TimeSpan.FromSeconds(1));

                // Assert
                Assert.IsTrue(isConnected);
                Assert.AreEqual(1, timesConnectedChangedRaised);
            }
        }