public HttpTestHarness(RouteCollection routes)
{
this.routes = routes;
Context = new Mock<HttpContextBase>();
Request = new Mock<HttpRequestBase>();
Response = new Mock<HttpResponseBase>();
RequestHeaders = new NameValueCollection();
ResponseOutputStream = new MemoryStream();
ResponseCache = new Mock<HttpCachePolicyBase>();
Context.SetupGet(c => c.Request)
.Returns(Request.Object);
Context.SetupGet(c => c.Response)
.Returns(Response.Object);
Context.SetupGet(c => c.Items)
.Returns(new Dictionary<string, object>());
Request.SetupGet(r => r.PathInfo).Returns("");
Request.SetupGet(r => r.Headers).Returns(RequestHeaders);
Response.Setup(r => r.ApplyAppPathModifier(It.IsAny<string>())).Returns<string>(r => r);
Response.SetupGet(r => r.OutputStream).Returns(ResponseOutputStream);
Response.SetupGet(r => r.Cache).Returns(ResponseCache.Object);
Response.SetupProperty(r => r.ContentType);
}