public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given var store = NewDocumentStore(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof (FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); // When RouteData data; using (var session = store.OpenSession()) { var node = new TrieNode { PageId = "pages/1" }; var page = new FakePage { Id = "pages/1" }; var structureInfo = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }; session.Store(structureInfo); session.Store(page); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } //Then Assert.NotNull(data); Assert.Equal("index", data.Values["action"]); Assert.Equal("FakeController", data.Values["controller"]); }
public void Can_Resolve_Virtual_Path_For_Page_With_Query_Parameter() { // Given var store = A.Fake<IDocumentStore>(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); var currentPage = new FakePage { Metadata = { Url = "fake-page" } }; context.Request.RequestContext.RouteData.Values[DefaultRoute.CurrentPageKey] = currentPage; // When var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); VirtualPathData data = route.GetVirtualPath(context.Request.RequestContext, new RouteValueDictionary(new { currentPage, page = "1", mode = "edit" })); // Then Assert.NotNull(data); Assert.Equal("fake-page/?page=1&mode=edit", data.VirtualPath); }
public void Returns_Null_If_Request_Is_For_Static_Content(string path) { // Given var store = NewDocumentStore(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof(FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(false); // When RouteData data; using (var session = store.OpenSession()) { var page = new FakePage(); session.Store(page); var node = new TrieNode { PageId = page.Id }; session.Store(new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } // Then Assert.Null(data); }