Inheritance: IHttpRequest
 public IHttpRequest CreateRequest(string userHostAddress)
 {
     var httpReq = new MockHttpRequest("test", HttpMethods.Get, ContentType.Json, "/", null, null, null) {
         UserHostAddress = userHostAddress
     };
     return httpReq;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
                });
        }
Esempio n. 4
0
        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;
 }
Esempio n. 6
0
        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);
        }
Esempio n. 8
0
        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);
        }