public override void Execute() { try { string requestBody = GetRequestBody(); statusCode = HttpStatusCode.OK; if (requestBody.Contains("GetUpdatedFormDigestInformation")) { responseString = DigestResponse; responseContentType = "text/xml"; } else { responseString = ResponseProvider.GetResponse(RequestUrl, RequestMethod.ToString(), requestBody); //remove duplicated escape characters (possible due to anonymous guid serializtion) responseString = responseString.Replace("\\\\/", "\\/"); //however add \ for Guids and Dates the expectedformat is Id: "\/Guid(...)\/" responseString = responseString.Replace("\"/Guid(", "\"\\/Guid("); responseString = responseString.Replace("\"/Date(", "\"\\/Date("); responseString = responseString.Replace(")/\"", ")\\/\""); responseContentType = "application/json"; } } catch (Exception ex) { statusCode = HttpStatusCode.InternalServerError; responseString = ex.Message; } ResponseStream = new MemoryStream(Encoding.UTF8.GetBytes(responseString)); }
public void GetResponse_ShouldCatchParserExceptionAndCallFactoryMethodWithCorrectParams() { const string errorMessage = "Error!"; var responseFactory = new Mock <IHttpResponseFactory>(); responseFactory.Setup( f => f.GetHttpResponse("1.1", HttpStatusCode.BadRequest, errorMessage, "text/plain; charset=utf-8")); var headHandler = new Mock <IHandler>(); var requestParser = new Mock <IRequestParser>(); requestParser.Setup(p => p.Parse(It.IsAny <string>())) .Throws(new ParserException(errorMessage)); var responseProvider = new ResponseProvider(requestParser.Object, responseFactory.Object, headHandler.Object); responseProvider.GetResponse("message"); responseFactory.Verify( f => f.GetHttpResponse("1.1", HttpStatusCode.BadRequest, errorMessage, "text/plain; charset=utf-8"), Times.Once()); }
public static void Main() { var responseProvider = new ResponseProvider(); var requestBuilder = new StringBuilder(); string inputLine; while ((inputLine = Console.ReadLine()) != null) { // Smells if (string.IsNullOrWhiteSpace(inputLine)) { HttpResponse response = responseProvider.GetResponse(requestBuilder.ToString()); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine(response); Console.ResetColor(); requestBuilder.Clear(); continue; } requestBuilder.AppendLine(inputLine); } }
public void GetResponse_ShouldCallRequestParserParseMethodOnceWithCorrectParameters() { const string input = "somestring"; var responseFactory = new Mock <IHttpResponseFactory>(); var headHandler = new Mock <IHandler>(); var requestParser = new Mock <IRequestParser>(); requestParser.Setup(p => p.Parse(input)); var responseProvider = new ResponseProvider(requestParser.Object, responseFactory.Object, headHandler.Object); responseProvider.GetResponse(input); requestParser.Verify(p => p.Parse(input), Times.Once()); }
public void GetResponse_ShouldCallHandlerHandleRequestMethodWithCorrectParameters() { const string input = "message"; var responseFactory = new Mock <IHttpResponseFactory>(); var headHandler = new Mock <IHandler>(); var request = new Mock <IHttpRequest>(); var requestParser = new Mock <IRequestParser>(); requestParser.Setup(p => p.Parse(input)) .Returns(request.Object); var response = new Mock <IHttpResponse>(); headHandler.Setup(h => h.HandleRequest(request.Object)) .Returns(response.Object); var responseProvider = new ResponseProvider(requestParser.Object, responseFactory.Object, headHandler.Object); var result = responseProvider.GetResponse(input); Assert.AreSame(response.Object, result); headHandler.Verify(h => h.HandleRequest(request.Object), Times.Once); }
public void GetResponse_ShouldCatchParserExceptionAndReturnFactoryMethodReturnValue() { const string errorMessage = "Error!"; var mockedResponse = new Mock <IHttpResponse>(); var responseFactory = new Mock <IHttpResponseFactory>(); responseFactory.Setup( f => f.GetHttpResponse("1.1", HttpStatusCode.BadRequest, errorMessage, "text/plain; charset=utf-8")) .Returns(mockedResponse.Object); var headHandler = new Mock <IHandler>(); var requestParser = new Mock <IRequestParser>(); requestParser.Setup(p => p.Parse(It.IsAny <string>())) .Throws(new ParserException(errorMessage)); var responseProvider = new ResponseProvider(requestParser.Object, responseFactory.Object, headHandler.Object); var result = responseProvider.GetResponse("message"); Assert.AreSame(mockedResponse.Object, result); }