Esempio n. 1
0
        public async Task TcpClientConnection_ConnectAsyncThrowsInvalidOperationExceptionWhenConnectionIsAlreadyConnected()
        {
            // Arrange
            using (new LocalTcpListener())
            {
                var connection = new TcpClientConnection();
                // Act (Connect)
                await connection.ConnectAsync(LocalTcpListener.Host, LocalTcpListener.Port, 5000);

                // Act (Attempt Another Connection) & Assert
                Assert.ThrowsAsync <InvalidOperationException>(() => connection.ConnectAsync(LocalTcpListener.Host, LocalTcpListener.Port, 5000));
            }
        }
Esempio n. 2
0
        public void TcpClientConnection_ConnectAsyncThrowsArgumentOutOfRangeExceptionWhenPortNumberIsNotValid()
        {
            // Arrange
            var connection = new TcpClientConnection();

            // Act & Assert
            Assert.ThrowsAsync <ArgumentOutOfRangeException>(() => connection.ConnectAsync(LocalTcpListener.Host, -1, 5000));
        }
Esempio n. 3
0
        public void TcpClientConnection_ConnectAsyncThrowsArgumentNullExceptionWhenHostIsNull()
        {
            // Arrange
            var connection = new TcpClientConnection();

            // Act & Assert
            Assert.ThrowsAsync <ArgumentNullException>(() => connection.ConnectAsync(null, LocalTcpListener.Port, 5000));
        }
Esempio n. 4
0
 public void TcpClientConnection_ConnectAsyncThrowsObjectDisposedExceptionWhenAttemptingToConnectUsingConnectionThatWasClosed()
 {
     // Arrange
     using (new LocalTcpListener())
     {
         var connection = new TcpClientConnection();
         connection.Close();
         // Act & Assert
         Assert.ThrowsAsync <ObjectDisposedException>(() => connection.ConnectAsync(LocalTcpListener.Host, LocalTcpListener.Port, 5000));
     }
 }
Esempio n. 5
0
        public void TcpClientConnection_ConnectAsyncAttemptTimesOut()
        {
            // Arrange
            var connection = new TcpClientConnection();
            // use a local IP that no physical machine is using
            var host = "172.20.0.1";

            // Act & Assert
            Assert.ThrowsAsync <TimeoutException>(() => connection.ConnectAsync(host, LocalTcpListener.Port, _shortTimeout));
            Assert.IsFalse(connection.Connected);
        }
Esempio n. 6
0
        public async Task TcpClientConnection_ConnectAsyncAttemptThrows()
        {
            // Arrange
            var connection = new TcpClientConnection();
            // use a local IP that no physical machine is using
            var host = "172.20.0.1";

            // Act & Assert
            try
            {
                await connection.ConnectAsync(host, LocalTcpListener.Port, _longTimeout);

                Assert.Fail($"Expected: {typeof(SocketException)}");
            }
            catch (SocketException)
            {
            }
            Assert.IsFalse(connection.Connected);
        }
Esempio n. 7
0
        public async Task TcpClientConnection_ConnectAsyncSuccessfullyAndClose()
        {
            // Arrange
            using (new LocalTcpListener())
            {
                var connection = new TcpClientConnection();
                // Act (Connect)
                await connection.ConnectAsync(LocalTcpListener.Host, LocalTcpListener.Port, 5000);

                // Assert
                Assert.IsTrue(connection.Connected);
                var stream = connection.GetStream();
                Assert.IsNotNull(stream);
                Assert.IsInstanceOf <NetworkStream>(stream);
                // Act (Close)
                connection.Close();
                // Assert
                Assert.IsFalse(connection.Connected);
                Assert.IsNull(connection.GetStream());
            }
        }