I set up UrlHelper like this
mockRepository = new MockRepository(MockBehavior.Default);
_context = mockRepository.Create<HttpContextBase>();
_requestBase = mockRepository.Create<HttpRequestBase>();
_responseBase = mockRepository.Create<HttpResponseBase>();
RouteCollection routes = new RouteCollection();
routes.MapRoute(
"auctioneersByLetter",
"{culture}/auctioneers/{LetterFilter}",
new { controller = "Client", action = "Index" },
new { LetterFilter = @"^([a-zA-Z]{1}|all|0-9)$" }
);
routes.MapRoute(
"auctioneersByLetter-search-filter",
"{culture}/auctioneers/{LetterFilter}/search-filter",
new { controller = "Client", action = "Index" },
new { LetterFilter = @"^([a-zA-Z]{1}|all|0-9)$" }
);
_requestBase.SetupGet(x => x.Path).Returns("https://domain/en-gb/auctioneers");
_requestBase.SetupGet(x => x.ApplicationPath).Returns("https://domain/en-gb/auctioneers");
_context.SetupGet(c => c.Request).Returns(_requestBase.Object);
_context.SetupGet(c => c.Response).Returns(_responseBase.Object);
var routeData = new RouteData();
routeData.Values.Add("LetterFilter", "");
var requestContext = new RequestContext(_context.Object, routeData);
_urlHelper = new UrlHelper(requestContext, routes);
but when I write test and call this code (passing test version of urlHelper) i gives me null
return urlHelper.RouteUrl("auctioneersByLetter", new
{
culture = Thread.CurrentThread.CurrentCulture,
LetterFilter = value
});