public void UseCurrentRouteParamsShouldBeHonoredRegardlessOfTheRoutingOrder() { var urlInfo = new UrlInfo("Services", "ModifyServiceWizard", "Step1", String.Empty, String.Empty); var parameters = new UrlBuilderParameters { RouteMatch = new RouteMatch { Name = "ServiceWizardModify" } }; parameters.RouteMatch.AddNamed("serviceArea", "Marketing"); parameters.RouteMatch.AddNamed("action", "Step1"); parameters.RouteMatch.AddNamed("controller", "ModifyServiceWizard"); parameters.RouteMatch.AddNamed("area", "Services"); parameters.UseCurrentRouteParams = true; IDictionary routeParameters = new HybridDictionary { { "action", "Step2" } }; IRoutingEngine routingEngine = new StubRoutingEngine(); routingEngine.Add( new PatternRoute("ServiceWizardCreate", "/Services/<serviceArea>/AddWizard/[action]") .DefaultForController().Is("CreateServiceWizard") .DefaultForArea().Is("Services") .DefaultForAction().Is("start") ); routingEngine.Add( new PatternRoute("ServiceWizardModify", "/Services/<serviceArea>/ModifyWizard/[action]") .DefaultForController().Is("ModifyServiceWizard") .DefaultForArea().Is("Services") .DefaultForAction().Is("start") ); urlBuilder.RoutingEngine = routingEngine; Assert.AreEqual("/Services/Marketing/ModifyWizard/Step2", urlBuilder.BuildUrl(urlInfo, parameters, routeParameters)); }
public void RouteParametersShouldBePersistedDuringCreateUrlPartsWhenNoneSpecifiedInParameters() { var urlInfo = new UrlInfo("i", "shouldbe", "overridden", "/", ".castle"); var parameters = new UrlBuilderParameters();//empty collection IDictionary routeParameters = new HybridDictionary { { "area", "routearea" }, { "controller", "routecontroller" }, { "action", "routeaction" } }; IRoutingEngine routingEngine = new StubRoutingEngine(); routingEngine.Add(new PatternRoute("default", "<area>/<controller>/<action>")); //keep routing engine from being empty urlBuilder.RoutingEngine = routingEngine; Assert.AreEqual("/routearea/routecontroller/routeaction", urlBuilder.BuildUrl(urlInfo, parameters, routeParameters)); }
public void If_Route_Name_Is_Specified_It_Should_Be_Used_Even_If_UseCurrentRouteParams_Is_True() { var urlInfo = new UrlInfo("", "Car", "View", String.Empty, String.Empty); var parameters = new UrlBuilderParameters { RouteMatch = new RouteMatch { Name = "CarRoute" } }; parameters.RouteMatch.AddNamed("carName", "Ford"); parameters.RouteMatch.AddNamed("action", "View"); parameters.RouteMatch.AddNamed("controller", "Car"); parameters.UseCurrentRouteParams = true; parameters.RouteName = "CarAddOptionWizard"; IRoutingEngine routingEngine = new StubRoutingEngine(); routingEngine.Add( new PatternRoute("CarRoute", "/Car/<carName>/[action]") .DefaultForController().Is("Car") .DefaultForAction().Is("VIew") ); routingEngine.Add( new PatternRoute("CarAddOptionWizard", "/Car/<carName>/AddOption/[action]") .DefaultForController().Is("CarAddOptionWizard") .DefaultForAction().Is("start") ); urlBuilder.RoutingEngine = routingEngine; Assert.AreEqual("/Car/Ford/AddOption", urlBuilder.BuildUrl(urlInfo, parameters)); }
public void RouteParametersShouldBePersistedDuringCreateUrlPartsWhenNoneSpecifiedInParameters() { var urlInfo = new UrlInfo("i", "shouldbe", "overridden", "/", ".castle"); var parameters = new UrlBuilderParameters();//empty collection IDictionary routeParameters = new HybridDictionary { { "area", "routearea" }, { "controller", "routecontroller" }, { "action", "routeaction" } }; IRoutingEngine routingEngine = new StubRoutingEngine(); routingEngine.Add(new PatternRoute("default", "<area>/<controller>/<action>"));//keep routing engine from being empty urlBuilder.RoutingEngine = routingEngine; Assert.AreEqual("/routearea/routecontroller/routeaction", urlBuilder.BuildUrl(urlInfo, parameters, routeParameters)); }