public IHttpRequest CreateRequest(string userHostAddress) { var httpReq = new MockHttpRequest("test", HttpMethods.Get, ContentType.Json, "/", null, null, null) { UserHostAddress = userHostAddress }; return httpReq; }
public object GetRequest( string httpMethod, string pathInfo, Dictionary <string, string> queryString, Dictionary <string, string> formData, string requestBody) { var httpHandler = GetHandler(httpMethod, pathInfo); var contentType = (formData != null && formData.Count > 0) ? MimeTypes.FormUrlEncoded : requestBody != null ? MimeTypes.Json : null; var httpReq = new MockHttpRequest( httpHandler.RequestName, httpMethod, contentType, pathInfo, queryString.ToNameValueCollection(), requestBody == null ? null : new MemoryStream(Encoding.UTF8.GetBytes(requestBody)), formData.ToNameValueCollection() ); var request = httpHandler.CreateRequest(httpReq, httpHandler.RequestName); return(request); }
public void Benchmark_Razor_vs_Markdown() { var iterations = 10000; var razorFormat = RazorFormat.Instance; var markdownFmt = MarkdownFormat.Instance; var dto = new RockstarsResponse { Results = Rockstar.SeedData.ToList() }; "Warm up MVC Razor...".Print(); var mockReq = new MockHttpRequest { OperationName = "RockstarsRazor" }; var mockRes = new MockHttpResponse(); razorFormat.ProcessRequest(mockReq, mockRes, dto); mockRes.ReadAsString().Print(); "Warm up Markdown Razor...".Print(); mockReq = new MockHttpRequest { OperationName = "RockstarsMark" }; mockRes = new MockHttpResponse(); markdownFmt.ProcessRequest(mockReq, mockRes, dto); mockRes.ReadAsString().Print(); "\n\nRunning for {0} times...".Fmt(iterations).Print(); CompareRuns(iterations, "MVC Razor", () => { mockReq = new MockHttpRequest { OperationName = "RockstarsRazor" }; mockRes = new MockHttpResponse(); razorFormat.ProcessRequest(mockReq, mockRes, dto); }, "Markdown Razor", () => { mockReq = new MockHttpRequest { OperationName = "RockstarsMark" }; mockRes = new MockHttpResponse(); markdownFmt.ProcessRequest(mockReq, mockRes, dto); }); }
public object ExecutePath( string httpMethod, string pathInfo, Dictionary <string, string> queryString, Dictionary <string, string> formData, string requestBody) { var httpHandler = GetHandler(httpMethod, pathInfo); var contentType = (formData != null && formData.Count > 0) ? ContentType.FormUrlEncoded : requestBody != null ? ContentType.Json : null; var httpReq = new MockHttpRequest( httpHandler.RequestName, httpMethod, contentType, pathInfo, queryString.ToNameValueCollection(), requestBody == null ? null : new MemoryStream(Encoding.UTF8.GetBytes(requestBody)), formData.ToNameValueCollection() ); var request = httpHandler.CreateRequest(httpReq, httpHandler.RequestName); var response = httpHandler.GetResponse(httpReq, null, request); var httpRes = response as IHttpResult; if (httpRes != null) { var httpError = httpRes as IHttpError; if (httpError != null) { throw new WebServiceException(httpError.Message) { StatusCode = httpError.Status, ResponseDto = httpError.Response }; } var hasResponseStatus = httpRes.Response as IHasResponseStatus; if (hasResponseStatus != null) { var status = hasResponseStatus.ResponseStatus; if (status != null && !status.ErrorCode.IsNullOrEmpty()) { throw new WebServiceException(status.Message) { StatusCode = (int)HttpStatusCode.InternalServerError, ResponseDto = httpRes.Response, }; } } return(httpRes.Response); } return(response); }
private static string GetRazorInstanceHtml() { var razorFormat = RazorFormat.Instance; var mockReq = new MockHttpRequest {OperationName = "RazorInstance"}; var mockRes = new MockHttpResponse(); var dto = new RockstarsResponse {Results = Rockstar.SeedData.ToList()}; razorFormat.ProcessRequest(mockReq, mockRes, dto); var html = mockRes.ReadAsString(); return html; }
public MockRequestContext() { this.Cookies = new Dictionary <string, Cookie>(); this.Files = new IFile[0]; this.Container = new Container(); var httpReq = new MockHttpRequest { Container = this.Container }; httpReq.AddSessionCookies(); this.Container.Register <IHttpRequest>(httpReq); this.Container.Register <IHttpResponse>(new MockHttpResponse()); }
public void Can_optimize_result_with_ToOptimizedResult() { var dto = new TestDto {Name = "test"}; var httpReq = new MockHttpRequest(); httpReq.Headers.Add(HttpHeaders.AcceptEncoding, "gzip,deflate,sdch"); httpReq.ResponseContentType = "text/html"; var httpRes = new ViewTests.MockHttpResponse(); var httpRequestContext = new HttpRequestContext(httpReq, httpRes, dto); var appHost = new TestAppHost(); HtmlFormat.Register(appHost); EndpointHost.ContentTypeFilter = appHost.ContentTypeFilters; object result = httpRequestContext.ToOptimizedResult(dto); Assert.IsNotNull(result); Assert.IsTrue(result is CompressedResult); }
public void Can_send_ResponseText_test_with_StatusDescription() { var mockRequest = new MockHttpRequest { ContentType = ContentType.Json }; var mockRequestContext = new HttpRequestContext(mockRequest, new object()); var mockResponse = new HttpResponseMock(); var customStatus = "Custom Status Description"; var httpResult = new HttpResult(System.Net.HttpStatusCode.Accepted, customStatus) { RequestContext = mockRequestContext }; var reponseWasAutoHandled = mockResponse.WriteToResponse(httpResult, ContentType.Html); Assert.That(reponseWasAutoHandled, Is.True); var statusDesc = mockResponse.StatusDescription; Assert.That(mockResponse.StatusCode, Is.EqualTo((int)System.Net.HttpStatusCode.Accepted)); Assert.That(statusDesc, Is.EqualTo(customStatus)); }
private static void CanOptimizeResult(string contentType, IPlugin pluginFormat) { var dto = new TestDto {Name = "test"}; var httpReq = new MockHttpRequest(); httpReq.Headers.Add(HttpHeaders.AcceptEncoding, "gzip,deflate,sdch"); httpReq.ResponseContentType = contentType; var httpRes = new ViewTests.MockHttpResponse(); var httpRequestContext = new HttpRequestContext(httpReq, httpRes, dto); var appHost = new TestAppHost(); if (pluginFormat != null) pluginFormat.Register(appHost); EndpointHost.ContentTypeFilter = appHost.ContentTypeFilters; object result = httpRequestContext.ToOptimizedResult(dto); Assert.IsNotNull(result); Assert.IsTrue(result is CompressedResult); }