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"); }
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); }