Exemplo n.º 1
0
        public void HttpSocketAdapter_GetResponseHeader_SocketException()
        {
            // Arrange
            MockSocketAdapter serverSocket = new MockSocketAdapter();

            serverSocket.SendString("HTTP/1.1 200 OK\r\n", Encoding.ASCII);

            HttpSocketAdapter clientSocket = new HttpSocketAdapter("GET", new Uri("http://bing.com"), serverSocket);

            Task <int>    responseCodeTask     = clientSocket.GetResponseStatusCode();
            Task <string> responseHeaderTask   = clientSocket.GetResponseHeader("test header");
            Task          responseCompleteTask = clientSocket.WaitForResponseComplete();

            TaskAssert.Completed(responseCodeTask, "GetResponseStatusCode should have failed.");
            AssertWithMessage.Equal(200, responseCodeTask.Result, "Wrong result for GetResponseStatusCode");

            // Act
            serverSocket.ThrowExceptionFromReceiveAsync();

            // Assert
            TaskAssert.Faulted(responseHeaderTask, "GetResponseHeader should have failed.");
            TaskAssert.Faulted(responseCompleteTask, "WaitForResponseComplete should have failed.");

            AssertWithMessage.Equal("An error occurred.", responseHeaderTask.Exception.InnerException.Message, "Wrong exception for GetResponseHeader");
            AssertWithMessage.Equal("An error occurred.", responseCompleteTask.Exception.InnerException.Message, "Wrong exception for WaitForResponseComplete");
        }
Exemplo n.º 2
0
        public void HttpSocketAdapter_GetResponseHeader_ReturnsHeaderWhenAvailable()
        {
            // Arrange
            MockSocketAdapter serverSocket = new MockSocketAdapter();

            serverSocket.SendString("HTTP/1.1 200 OK\r\n", Encoding.ASCII);

            HttpSocketAdapter clientSocket = new HttpSocketAdapter("GET", new Uri("http://bing.com"), serverSocket);

            // Act
            Task <string> result = clientSocket.GetResponseHeader("content-encoding");

            // Assert
            TaskAssert.NotCompleted(result, "Before header sent");

            // Act
            serverSocket.SendString("Content-Encoding: UTF-16\r\n", Encoding.ASCII);

            // Assert
            TaskAssert.NotCompleted(result, "Header values should not be returned until all headers are read.");

            // Act - Blank newline means end of headers
            serverSocket.SendString("Content-Length: 45\r\n\r\n", Encoding.ASCII);

            // Assert
            TaskAssert.ResultEquals(result, "UTF-16");

            // Act
            Task <string> result2 = clientSocket.GetResponseHeader("content-length");

            // Assert
            TaskAssert.ResultEquals(result2, "45");

            // Act
            Task <string> result3 = clientSocket.GetResponseHeader("user-agent");

            // Assert
            TaskAssert.ResultEquals(result3, null);
        }