public RouteDictionaryFixture() { this.routes = new RouteDictionary(new FakeNancyModuleWithoutBasePath(), "GET"); this.path = "/route/path"; this.condition = () => { return true; }; this.action = parameters => { return new Response(); }; }
public void CallRedirectWithControllerNameAndNullActionName() { // Setup var values = new RouteDictionary(); values["One"] = 1; values["Two"] = 2; // Execute var result = Redirect(a_actionName: null, a_controllerName: "Controller", a_values: values); }
public void Should_set_module_property_when_initialized() { // Given var module = new FakeNancyModuleWithBasePath(); // When var rootBasedRoutes = new RouteDictionary(module, "GET"); // Then rootBasedRoutes.Module.ShouldBeSameAs(module); }
public void NavigateToActionWithArguments() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "id", 12 } }; navigationCore.Navigate<TestController>("User", routeDictionary); }
public void NavigateToActionWithArgumentsOverload2() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "username", "jsmunroe" }, { "password", "password" } }; navigationCore.Navigate<TestController>("User", routeDictionary); }
public void NavigateToActionWithArguments() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "id", 12 } }; navigationCore.Navigate <TestController>("User", routeDictionary); }
public void NavigateToActionWithTooFewArguments() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "username", "jsmunroe" }, }; navigationCore.Navigate <TestController>("User", routeDictionary); }
public void NavigateToActionWithArgumentsOverload2() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "username", "jsmunroe" }, { "password", "password" } }; navigationCore.Navigate <TestController>("User", routeDictionary); }
public void GivenPath_RootSegmentsContainFirstPartOfPath() { var routes = new List <RequestBuilder> { new RequestBuilder(HttpMethod.Get, "/api/foo/bar", null) }; var dictionary = RouteDictionary.From(routes); dictionary .RootSegments .Should() .ContainKey("api"); }
public void Should_store_route_combined_with_root_when_route_indexer_is_invoked_and_root_is_not_empty() { // Given var module = new FakeNancyModuleWithBasePath(); var rootBasedRoutes = new RouteDictionary(module, "GET"); rootBasedRoutes[this.path] = this.action; var moduleRelativePath = string.Concat(module.ModulePath, this.path); // When var description = rootBasedRoutes.GetRoute(moduleRelativePath); // Then description.Path.ShouldEqual(moduleRelativePath); }
/// <summary> /// Redirect to another action within this controller. /// </summary> /// <param name="a_actionName">Action name.</param> /// <param name="a_values">Route values.</param> /// <returns>Created redirect result.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="a_actionName"/> is null.</exception> protected RedirectResult Redirect(string a_actionName, RouteDictionary a_values = null) { #region Argument Validation if (a_actionName == null) throw new ArgumentNullException(nameof(a_actionName)); #endregion return new RedirectResult { ActionName = a_actionName, Values = a_values ?? new RouteDictionary(), }; }
public void HandleRedirectResultWithNullResulte() { // Setup var mvc = new MvcEngine(); var handler = new RedirectHandler(_mockNavigator.Object); var values = new RouteDictionary(); var result = new RedirectResult { ControllerName = "Test", ActionName = "Index", Values = new RouteDictionary(), }; // Execute handler.Handle(a_mvc: mvc, a_controllerName: "AnotherTest", a_result: null); }
public void GivenRouteWithParameterAndQueryStringWithoutSeparatorX_RequestBuilderIsReturned() { var routes = new List <RequestBuilder> { new RequestBuilder(HttpMethod.Get, "/api/foos/{id}?blah=baz", null), new RequestBuilder(HttpMethod.Get, "/api/foos/{id}?blah=qux", null) }; var dictionary = RouteDictionary.From(routes); dictionary .Match( HttpMethod.Get, "/api/foos/1234?blah=qux") .Should() .Be(routes[1]); }
public void GivenPathForSingleDocumentAtRoot_RootSegmentContainsRequestBuilder() { var requestBuilder = new RequestBuilder(HttpMethod.Post, "/index.php", null); var routes = new List <RequestBuilder> { requestBuilder }; var dictionary = RouteDictionary.From(routes); dictionary .RootSegments["index.php"] .RequestBuilders[HttpMethod.Post] .Should() .Be(requestBuilder); }
public void GivenRouteWithParameterAndQueryString_RequestBuilderIsReturned() { var requestBuilder = new RequestBuilder(HttpMethod.Get, "/api/foos/{id}/?blah=baz", null); var routes = new List <RequestBuilder> { requestBuilder }; var dictionary = RouteDictionary.From(routes); dictionary .Match( HttpMethod.Get, "/api/foos/1234/?blah=baz") .Should() .Be(requestBuilder); }
public void HandleRedirectResultWithNullMvcEngine() { // Setup var handler = new RedirectHandler(_mockNavigator.Object); var values = new RouteDictionary(); var result = new RedirectResult { ControllerName = "Test", ActionName = "Index", Values = new RouteDictionary(), }; // Execute handler.Handle(a_mvc: null, a_controllerName: "AnotherTest", a_result: result); // Assert _mockNavigator.Verify(i => i.Navigate("Test", "Index", values), Times.Once); }
public void GivenNonConfigured_NoResultIsReturned() { var requestBuilder = new RequestBuilder(HttpMethod.Get, "/api/foo/bar?blah=blurb", null); var routes = new List <RequestBuilder> { requestBuilder }; var dictionary = RouteDictionary.From(routes); dictionary .Match( HttpMethod.Get, "/api/baz") .Should() .BeNull(); }
public void GivenPathWithQueryParameters_ReturnedRequestBuilderMatches() { var requestBuilder = new RequestBuilder(HttpMethod.Get, "/api/foo/bar?blah=blurb", null); var routes = new List <RequestBuilder> { requestBuilder }; var dictionary = RouteDictionary.From(routes); dictionary .Match( HttpMethod.Get, "/api/foo/bar?blah=blurb") .Should() .Be(requestBuilder); }
public void ConstructWithDynamicObject() { // Setup dynamic values = new { Key = "key", Value = "value", }; // Execute var dict = new RouteDictionary(values); // Assert Assert.IsTrue(dict.ContainsKey("Key")); Assert.AreEqual("key", dict["Key"]); Assert.IsTrue(dict.ContainsKey("Value")); Assert.AreEqual("value", dict["Value"]); }
public void HandleRedirectResultWithNoControllerName() { // Setup var mvc = new MvcEngine(); var handler = new RedirectHandler(_mockNavigator.Object); var values = new RouteDictionary(); var result = new RedirectResult { ControllerName = null, ActionName = "Index", Values = new RouteDictionary(), }; // Execute handler.Handle(mvc, "AnotherTest", result); // Assert _mockNavigator.Verify(i => i.Navigate("AnotherTest", "Index", values), Times.Once); }
public void GivenPathWithQueryParameters_TailSegmentContainsRequestBuilder() { var requestBuilder = new RequestBuilder(HttpMethod.Get, "/api/foo/bar?blah=blurb", null); var routes = new List <RequestBuilder> { requestBuilder }; var dictionary = RouteDictionary.From(routes); dictionary .RootSegments["api"] .Segments["foo"] .Segments["bar?blah=blurb"] .RequestBuilders[HttpMethod.Get] .Should() .Be(requestBuilder); }
public void CallRedirect() { // Setup var values = new RouteDictionary(); values["One"] = 1; values["Two"] = 2; // Execute var result = Redirect("ActionName", values); // Assert Assert.IsNull(result.ControllerName); Assert.AreEqual("ActionName", result.ActionName); Assert.IsNotNull(result.Values); Assert.IsTrue(result.Values.ContainsKey("One")); Assert.AreEqual(1, result.Values["One"]); Assert.IsTrue(result.Values.ContainsKey("Two")); Assert.AreEqual(2, result.Values["Two"]); }
static RouteTable() { Routes = new RouteDictionary(); }
public void HandleRedirectResultWithNullControllerName() { // Setup var mvc = new MvcEngine(); var handler = new RedirectHandler(_mockNavigator.Object); var values = new RouteDictionary(); var result = new RedirectResult { ControllerName = "Test", ActionName = "Index", Values = new RouteDictionary(), }; // Execute handler.Handle(a_mvc: mvc, a_controllerName:null, a_result:result); }
public void NavigateToActionWithTooFewArguments() { // Setup var navigationCore = new NavigationCore(_mvcEngine); // Execute var routeDictionary = new RouteDictionary { { "username", "jsmunroe" }, }; navigationCore.Navigate<TestController>("User", routeDictionary); }