public void SetProperties() { var defaults = new[] { new RouteDataItemModel { PlaceHolder = "controller", DefaultValue = "Home" } }; var constraints = new[] { new RouteConstraintModel { IsMatch = true, ParameterName = "action", Constraint = ".+" } }; var dataTokens = new RouteValueDictionary(new { area = "Test", name = "Hi" }); var url = "{controller}/{action}/{id}"; var test = new RouteModel(); test.Area = "Test"; test.Url = url; test.RouteData = defaults; test.Constraints = constraints; test.DataTokens = dataTokens; Assert.False(test.IsMatch); Assert.Equal("Test", test.Area); Assert.Equal(url, test.Url); Assert.Same(defaults, test.RouteData); Assert.Same(constraints, test.Constraints); Assert.Same(dataTokens, test.DataTokens); test.IsMatch = true; Assert.True(test.IsMatch); }
public void TestNameMismatches() { var expectedRoute = new { controller = "HoomAttr", action = "Mindex" }; RouteAssert.HasRoute(routes, "/homeattr/index", expectedRoute); Assert.That(assertEngine.StringMismatchCount, Is.EqualTo(2)); Assert.That(assertEngine.Messages[0], Is.EqualTo("Expected 'HoomAttr', not 'HomeAttr' for 'controller' at url '/homeattr/index'.")); Assert.That(assertEngine.Messages[1], Is.EqualTo("Expected 'Mindex', not 'Index' for 'action' at url '/homeattr/index'.")); }
public void ConvertToRouteValueDictionary_WithObjectDictionary_ReturnsPopulatedDictionary() { // Arrange var routeValues = new { foo = "bar" }; // Act var dictionary = RouteValueDictionaryExtensions.ConvertToRouteValueDictionary(routeValues); // Assert PAssert.IsTrue(() => (string)dictionary["foo"] == "bar"); }
public void MapHttpRoute1CreatesRoute() { // Arrange RouteCollection routes = new RouteCollection(); object defaults = new { d1 = "D1" }; // Act Route route = routes.MapHttpRoute("name", "template", defaults); // Assert Assert.NotNull(route); Assert.Equal("template", route.Url); Assert.Equal(1, route.Defaults.Count); Assert.Equal("D1", route.Defaults["d1"]); Assert.Same(route, routes["name"]); }
public void MapRoute4() { // Arrange RouteCollection routes = new RouteCollection(); var defaults = new { Foo = "DefaultFoo" }; // Act routes.MapRoute("RouteName", "SomeUrl", defaults); // Assert Assert.AreEqual(1, routes.Count); Route route = routes[0] as Route; Assert.IsNotNull(route); Assert.IsNull(route.DataTokens); Assert.AreSame(route, routes["RouteName"]); Assert.AreEqual("SomeUrl", route.Url); Assert.IsInstanceOfType(route.RouteHandler, typeof(MvcRouteHandler)); Assert.AreEqual("DefaultFoo", route.Defaults["Foo"]); Assert.AreEqual(0, route.Constraints.Count); }
public void IgnoreRoute4() { // Arrange RouteCollection routes = new RouteCollection(); var constraints = new { Foo = "DefaultFoo" }; // Act routes.IgnoreRoute("SomeUrl", constraints); // Assert Assert.AreEqual(1, routes.Count); Route route = routes[0] as Route; Assert.IsNotNull(route); Assert.AreEqual("SomeUrl", route.Url); Assert.IsInstanceOfType(route.RouteHandler, typeof(StopRoutingHandler)); Assert.IsNull(route.Defaults); Assert.AreEqual(1, route.Constraints.Count); Assert.AreEqual("DefaultFoo", route.Constraints["Foo"]); }
public void NullOrEmptyStringParameterThrows() { // Arrange HtmlHelper htmlHelper = MvcHelper.GetHtmlHelper(); var tests = new[] { // ActionLink(string linkText, string actionName) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName")) }, // ActionLink(string linkText, string actionName, object routeValues, object htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", new Object(), null /* htmlAttributes */)) }, // ActionLink(string linkText, string actionName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", new RouteValueDictionary(), new RouteValueDictionary())) }, // ActionLink(string linkText, string actionName, string controllerName) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", "controllerName")) }, // ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", "controllerName", new Object(), null /* htmlAttributes */)) }, // ActionLink(string linkText, string actionName, string controllerName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", "controllerName", new RouteValueDictionary(), new RouteValueDictionary())) }, // ActionLink(string linkText, string actionName, string controllerName, string protocol, string hostName, string fragment, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.ActionLink(String.Empty, "actionName", "controllerName", null, null, null, new RouteValueDictionary(), new RouteValueDictionary())) }, // RouteLink(string linkText, object routeValues, object htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, new Object(), null /* htmlAttributes */)) }, // RouteLink(string linkText, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, new RouteValueDictionary(), new RouteValueDictionary())) }, // RouteLink(string linkText, string routeName, object routeValues) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, "routeName", null /* routeValues */)) }, // RouteLink(string linkText, string routeName, RouteValueDictionary routeValues) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, "routeName", new RouteValueDictionary() /* routeValues */)) }, // RouteLink(string linkText, string routeName) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, (string)null /* routeName */)) }, // RouteLink(string linkText, object routeValues) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, (object)null /* routeValues */)) }, // RouteLink(string linkText, RouteValueDictionary routeValues) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, new RouteValueDictionary() /* routeValues */)) }, // RouteLink(string linkText, string routeName, object routeValues, object htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, "routeName", new Object(), null /* htmlAttributes */)) }, // RouteLink(string linkText, string routeName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, "routeName", new RouteValueDictionary(), new RouteValueDictionary())) }, // RouteLink(string linkText, string routeName, string protocol, string hostName, string fragment, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) new { Parameter = "linkText", Action = new Action(() => htmlHelper.RouteLink(String.Empty, "routeName", null, null, null, new RouteValueDictionary(), new RouteValueDictionary())) }, }; // Act & Assert foreach (var test in tests) { Assert.ThrowsArgumentNullOrEmpty(test.Action, test.Parameter); } }
public void HasRouteWithoutId() { var expectedRoute = new { controller = "GetPostAttr", action = "Index" }; RouteAssert.HasRoute(routes, "/getpostattr/index", expectedRoute); }
public void ExecuteResultCallsResponseRedirect() { // Arrange Mock<Controller> mockController = new Mock<Controller>(); Mock<ControllerContext> mockControllerContext = new Mock<ControllerContext>(); mockControllerContext.Setup(c => c.HttpContext.Request.ApplicationPath).Returns("/somepath"); mockControllerContext.Setup(c => c.HttpContext.Response.ApplyAppPathModifier(It.IsAny<string>())).Returns((string s) => s); mockControllerContext.Setup(c => c.HttpContext.Response.Redirect("/somepath/c/a/i", false)).Verifiable(); mockControllerContext.Setup(c => c.Controller).Returns(mockController.Object); var values = new { Controller = "c", Action = "a", Id = "i" }; RedirectToRouteResult result = new RedirectToRouteResult(new RouteValueDictionary(values)) { Routes = new RouteCollection() { new Route("{controller}/{action}/{id}", null) }, }; // Act result.ExecuteResult(mockControllerContext.Object); // Assert mockControllerContext.Verify(); }
public void ExecuteResultPreservesTempData() { // Arrange TempDataDictionary tempData = new TempDataDictionary(); tempData["Foo"] = "Foo"; tempData["Bar"] = "Bar"; Mock<Controller> mockController = new Mock<Controller>() { CallBase = true }; mockController.Object.TempData = tempData; Mock<ControllerContext> mockControllerContext = new Mock<ControllerContext>(); mockControllerContext.Setup(c => c.HttpContext.Request.ApplicationPath).Returns("/somepath"); mockControllerContext.Setup(c => c.HttpContext.Response.ApplyAppPathModifier(It.IsAny<string>())).Returns((string s) => s); mockControllerContext.Setup(c => c.HttpContext.Response.Redirect("/somepath/c/a/i", false)).Verifiable(); mockControllerContext.Setup(c => c.Controller).Returns(mockController.Object); var values = new { Controller = "c", Action = "a", Id = "i" }; RedirectToRouteResult result = new RedirectToRouteResult(new RouteValueDictionary(values)) { Routes = new RouteCollection() { new Route("{controller}/{action}/{id}", null) }, }; // Act object value = tempData["Foo"]; result.ExecuteResult(mockControllerContext.Object); mockController.Object.TempData.Save(mockControllerContext.Object, new Mock<ITempDataProvider>().Object); // Assert Assert.True(tempData.ContainsKey("Foo")); Assert.True(tempData.ContainsKey("Bar")); }
public void HasHomeRoute() { var expectedRoute = new { controller = "HomeAttr", action = "Index" }; RouteAssert.HasRoute(routes, "/homeattr/index", expectedRoute); }