public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given //var store = this.SetupContext(); var routeResolverTrie = A.Fake <IRouteResolverTrie>(); //var mapper = A.Fake<IControllerMapper>(); //A.CallTo(() => mapper.GetControllerName(typeof (FakeController))).Returns("FakeController"); //A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); // When ResolveResult data; using (var store = this.SetupContext()) { 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 resolver = new DefaultRouteResolver(routeResolverTrie); A.CallTo(() => routeResolverTrie.LoadTrie()).Returns(structureInfo); data = resolver.Resolve(path); } //Then Assert.NotNull(data); Assert.Equal(data.TrieNode.PageId, "pages/1"); Assert.Equal("index", data.Action); } }
public void Should_return_route_whos_filter_returns_true_when_there_is_also_a_matching_route_with_a_failing_filter() { // Given var moduleCatalog = new FakeModuleCatalog(); var routeCache = new RouteCache(moduleCatalog, new FakeModuleKeyGenerator(), A.Fake <INancyContextFactory>()); var specificResolver = new DefaultRouteResolver(moduleCatalog, this.matcher, this.moduleBuilder); var request = new FakeRequest("GET", "/filt"); var context = new NancyContext { Request = request }; // When var route = specificResolver.Resolve(context, routeCache).Item1; // Then route.Description.Condition(context).ShouldBeTrue(); }
public void Should_return_a_route_if_matching_and_the_filter_returns_true() { // Given var moduleCatalog = new FakeModuleCatalog(); var routeCache = new RouteCache(moduleCatalog, new FakeModuleKeyGenerator(), A.Fake <INancyContextFactory>()); var specificResolver = new DefaultRouteResolver(moduleCatalog, this.matcher, this.moduleBuilder); var request = new FakeRequest("GET", "/notfiltered"); var context = new NancyContext { Request = request }; // When var route = specificResolver.Resolve(context, routeCache).Item1; // Then route.ShouldBeOfType(typeof(Route)); }
public void Should_not_return_a_route_if_matching_and_the_filter_returns_false() { // Given var moduleCatalog = new FakeModuleCatalog(); var routeCache = new RouteCache(moduleCatalog, new FakeModuleKeyGenerator(), A.Fake <INancyContextFactory>(), A.Fake <IRouteSegmentExtractor>(), this.routeDescriptionProvider); var specificResolver = new DefaultRouteResolver(moduleCatalog, this.matcher, this.moduleBuilder, routeCache, null); var request = new FakeRequest("GET", "/filtered"); var context = new NancyContext { Request = request }; // When var route = specificResolver.Resolve(context).Item1; // Then route.ShouldBeOfType(typeof(NotFoundRoute)); }
public void Should_return_prereq_and_postreq_from_module() { // Given var moduleCatalog = A.Fake <INancyModuleCatalog>(); A.CallTo(() => moduleCatalog.GetAllModules(A <NancyContext> .Ignored)).Returns(new[] { new FakeNancyModuleWithPreAndPostHooks() }); A.CallTo(() => moduleCatalog.GetModuleByKey(A <string> .Ignored, A <NancyContext> .Ignored)).Returns( new FakeNancyModuleWithPreAndPostHooks()); var routeCache = new RouteCache(moduleCatalog, new FakeModuleKeyGenerator(), A.Fake <INancyContextFactory>()); var specificResolver = new DefaultRouteResolver(moduleCatalog, this.matcher, this.moduleBuilder); var request = new FakeRequest("GET", "/PrePost"); var context = new NancyContext { Request = request }; // When var result = specificResolver.Resolve(context, routeCache); // Then result.Item3.ShouldNotBeNull(); result.Item4.ShouldNotBeNull(); }