Я изо всех сил пытаюсь найти полный пример того, как создать контекст запроса, необходимый для проверки исходящих URL с помощью Rhino Mocks.
У меня есть пример использования Moq, который я пытался преобразовать в Rhino Mocks, но мне не очень повезло.
private static HttpContextBase MakeMockHttpContext(string url)
{
var mocks = new MockRepository();
var mockHttpContext = mocks.StrictMock<HttpContextBase>();
// Mock the request
var mockRequest = mocks.StrictMock<HttpRequestBase>();
mockHttpContext.Expect(x => x.Request).Return(mockRequest);
mockRequest.Expect(x => x.AppRelativeCurrentExecutionFilePath).Return(url);
// Mock the response
var mockResponse = mocks.StrictMock<HttpResponseBase>();
mockHttpContext.Expect(x => x.Response).Return(mockResponse);
mockResponse.Stub(r => r.ApplyAppPathModifier(Arg<string>.Is.Anything))
.Do(new Func<string, string>(s => s));
return mockHttpContext;
}
private string GenerateUrl(object values)
{
RouteCollection routeConfig = new RouteCollection();
Global.RegisterRoutes(routeConfig);
var mockContext = MakeMockHttpContext(null);
var requestContext = new RequestContext(mockContext, new RouteData());
return UrlHelper.GenerateUrl(null, null, null,
new RouteValueDictionary(values), routeConfig, requestContext, true);
}
[Test]
public void Catalog_index_returns_root_url()
{
GenerateUrl(new { controller = "Catalog", action = "Index" }).ShouldEqual("/");
}
Любая помощь будет оценена.