public void GetMenus_SetsMenuToActiveIfItBelongsToCurrentAreaAndController() { routeValues["controller"] = "home"; routeValues["action"] = "index"; routeValues["area"] = null; MvcSiteMapNode expected = parser.GetMenuNodes(siteMap).Single(menu => menu.Controller == "Home" && menu.Action == "Index"); MvcSiteMapMenuNode actual = TreeToEnumerable(provider.GetMenus().Where(menu => menu.IsActive)).Single(); Assert.AreEqual(ResourceProvider.GetSiteMapTitle(expected.Area, expected.Controller, expected.Action), actual.Title); Assert.AreEqual(expected.IconClass, actual.IconClass); Assert.AreEqual(expected.Controller, actual.Controller); Assert.AreEqual(expected.Action, actual.Action); Assert.AreEqual(expected.Area, actual.Area); Assert.IsFalse(actual.HasActiveSubMenu); Assert.IsTrue(actual.IsActive); }
public void GetMenus_SetsHasActiveSubmenuIfAnyOfItsSubmenusAreActiveOrHasActiveSubmenus() { routeValues["area"] = "administration"; routeValues["controller"] = "roles"; routeValues["action"] = "index"; MvcSiteMapNode expected = parser.GetMenuNodes(siteMap).Single(menu => menu.Area == "Administration" && menu.Action == null); IEnumerable <MvcSiteMapMenuNode> actualMenus = TreeToEnumerable(provider.GetMenus()).Where(menu => menu.HasActiveSubMenu); MvcSiteMapMenuNode actual = actualMenus.Single(); Assert.AreEqual(ResourceProvider.GetSiteMapTitle(expected.Area, expected.Controller, expected.Action), actual.Title); Assert.AreEqual(expected.IconClass, actual.IconClass); Assert.AreEqual(expected.Controller, actual.Controller); Assert.AreEqual(expected.Action, actual.Action); Assert.AreEqual(expected.Area, actual.Area); Assert.IsTrue(actual.HasActiveSubMenu); Assert.IsFalse(actual.IsActive); }