public void GetUrl_WhenUrlHelperReturnsNull_Throws() { // Arrange var testableAttribute = new TestablePageRemoteAttribute { PageName = "Foo", PageHandler = "Bar" }; var ambientValues = new RouteValueDictionary { ["page"] = "/Page" }; var routeData = new RouteData(ambientValues) { Routers = { Mock.Of <IRouter>() } }; var urlHelper = new MockUrlHelper(url: null) { ActionContext = GetActionContext(new ServiceCollection().BuildServiceProvider(), routeData) }; var validationContext = GetValidationContext(urlHelper); // Act && Assert ExceptionAssert.Throws <InvalidOperationException>( () => testableAttribute.InvokeGetUrl(validationContext), Resources.RemoteAttribute_NoUrlFound); }
public void GetUrl_WhenPageNameIsNotSet_WillUsePageNameFromAmbientValues() { // Arrange var testableAttribute = new TestablePageRemoteAttribute() { PageHandler = "Handler" }; var ambientValues = new RouteValueDictionary { ["page"] = "/Page" }; var routeData = new RouteData(ambientValues) { Routers = { Mock.Of <IRouter>() } }; var urlHelper = new MockUrlHelper(url: "/Page?handler=Handler") { ActionContext = GetActionContext(new ServiceCollection().BuildServiceProvider(), routeData) }; var validationContext = GetValidationContext(urlHelper); // Act var actualUrl = testableAttribute.InvokeGetUrl(validationContext); // Assert Assert.Equal("/Page?handler=Handler", actualUrl); }
public void GetUrl_CallsUrlHelperWithExpectedValues() { // Arrange var testableAttribute = new TestablePageRemoteAttribute { PageName = "Foo", PageHandler = "Bar" }; var ambientValues = new RouteValueDictionary() { ["page"] = "/Foo" }; var routeData = new RouteData(ambientValues) { Routers = { Mock.Of <IRouter>() } }; var urlHelper = new MockUrlHelper(url: "/Foo?handler=Bar") { ActionContext = GetActionContext(new ServiceCollection().BuildServiceProvider(), routeData) }; var validationContext = GetValidationContext(urlHelper); // Act testableAttribute.InvokeGetUrl(validationContext); // Assert var routeDictionary = Assert.IsType <RouteValueDictionary>(urlHelper.RouteValues); Assert.Equal(2, routeDictionary.Count); Assert.Equal("/Foo", routeDictionary["page"] as string); Assert.Equal("Bar", routeDictionary["handler"] as string); }