public void TestDynamicRoutesAndMemberRoutes()
{
var router = new BlackApplication().Routes;
Route root = null, item = null, custom = null,subShow = null;
root= router.RootRoute = new Route()
{
ControllerType = typeof(TestDynamicRoutesAndMemberRoutesController),
ActionName = "Index",
Name="/"
};
router.RootRoute.DynamicRoute = item = new Route()
{
ControllerType = typeof(TestDynamicRoutesAndMemberRoutesController),
ActionName = "Item",
Name="id"
};
item.MemberRoutes.Add(custom = new Route()
{
ControllerType = typeof(TestDynamicRoutesAndMemberRoutesController),
ActionName = "Custom",
Name="custom"
});
custom.DynamicRoute = new Route()
{
ActionName ="Item",
Name = "id",
ControllerType = typeof(SubRouteController)
};
Assert.AreEqual(router.RootRoute,router.Evaluate("/").Route,"Route / should be found for /");
Assert.AreEqual(item,router.Evaluate("/23").Route,"Route Controller.Item should be found for /23");
Assert.AreEqual(item,router.Evaluate("/23/").Route,"Route Controller.Item should be found for /23/");
Assert.AreEqual(custom,router.Evaluate("/23/custom").Route,"Route Controller.Custom should be found for /23/custom");
Assert.AreEqual(custom,router.Evaluate("/23/custom/").Route,"Route Controller.Custom should be found for /23/custom/");
Assert.AreEqual(custom,router.Evaluate("/23/Custom").Route,"Route Controller.Custom should be found for /23/Custom (routing is case insensitive)");
Assert.AreEqual(custom.DynamicRoute,router.Evaluate("/23/custom/23").Route,"Route Controller.Custom.DinamicRoute should be found for /23/custom/23");
}