public void DelayConnectingHttpSocketAdapter_CompleteRequest_DoesNotConnectIfNoDataAndNoResponse()
        {
            // Arrange
            IHttpSocketAdapter delayAdapter = new DelayConnectingHttpSocketAdapter(DoNotConnect);

            // Act
            Task result = delayAdapter.CompleteRequest();

            // Assert
            TaskAssert.Completed(result, "CompleteRequest should complete immediately when there is no request.");
        }
        public void DelayConnectingHttpSocketAdapter_Dispose_DoesNotDisposeASecondTime()
        {
            // Arrange
            IHttpSocketAdapter delayAdapter = new DelayConnectingHttpSocketAdapter(ConnectOnlyOnce);

            delayAdapter.CompleteRequest();
            delayAdapter.Dispose();

            // Act
            delayAdapter.Dispose();

            // Assert
            //   If we got here, the adapter was not Disposed a second time
        }
        public void DelayConnectingHttpSocketAdapter_CompleteRequest_CompletesIfThereIsAResponseHandler()
        {
            // Arrange
            IHttpSocketAdapter delayAdapter = new DelayConnectingHttpSocketAdapter(ConnectOnlyOnce);

            delayAdapter.SetResponseHandler(HandleAsciiResponse);

            // Act
            Task result = delayAdapter.CompleteRequest();

            // Assert
            Assert.True(_createdAdapter != null, "Adapter should have been created");
            Assert.True(_createdAdapter.IsCompleted, "Adapter should be completed");
        }
        public void DelayConnectingHttpSocketAdapter_CompleteRequest_DoesNotRecreateConnection()
        {
            // Arrange
            IHttpSocketAdapter delayAdapter = new DelayConnectingHttpSocketAdapter(ConnectOnlyOnce);

            byte[] bytesToWrite = Encoding.ASCII.GetBytes("Hello");
            delayAdapter.WriteToRequestAsync(bytesToWrite, 0, bytesToWrite.Length);

            // Act
            delayAdapter.CompleteRequest();

            // Assert
            Assert.True(_createdAdapter != null, "Adapter was not created.");
            Assert.True(_createdAdapter.IsCompleted, "Adapter was not Completed.");
        }