public async Task ResponseGetReceived_IfValidRespondServer()
            {
                // Arrange
                var sut = new ReliableHttpClient();
                const HttpStatusCode expectedStatus = HttpStatusCode.OK;
                HttpWebRequest       stubRequest    = CreateStubRequest(expectedStatus);

                // Act
                (HttpWebResponse actualResponse, WebException exception)response = await sut.Respond(stubRequest);

                // Assert
                Assert.Equal(expectedStatus, response.actualResponse.StatusCode);
            }
            public async Task ResponseDontGetReceived_IfMissingRespondServer()
            {
                // Arrange
                var sut         = new ReliableHttpClient();
                var stubRequest = new Mock <HttpWebRequest>();

                stubRequest.Setup(r => r.GetResponseAsync()).Throws <WebException>();

                // Act
                (HttpWebResponse actualResponse, WebException exception)response = await sut.Respond(stubRequest.Object);

                // Assert
                Assert.NotNull(response.exception);
            }
            public void CreatePostRequest()
            {
                // Arrange
                const string expectedUrl  = "http://valid/url";
                const string expectedType = "application/json";
                var          sut          = new ReliableHttpClient();

                // Act
                HttpWebRequest request = sut.Request(expectedUrl, expectedType);

                // Assert
                Assert.Equal("POST", request.Method);
                Assert.Equal(expectedUrl, request.RequestUri.AbsoluteUri);
                Assert.Equal(expectedType, request.ContentType);
            }