Example #1
0
        public void HandlesRouteWithoutDefaults()
        {
            var route = new Route("hello/world", null, null);

            var routeInfo         = new RouteInfo();
            var defaultsProcessor = new DefaultsProcessor();

            defaultsProcessor.ProcessDefaults(route, routeInfo);

            Assert.AreEqual(0, routeInfo.Defaults.Count);
            Assert.AreEqual(0, routeInfo.Optional.Count);
        }
Example #2
0
        public void HandlesOptionalParameters()
        {
            var routes = new RouteCollection();

            routes.MapRoute(
                name: "Hello",
                url: "hello/world/{id}",
                defaults: new { controller = "Hello", action = "HelloWorld", id = UrlParameter.Optional }
                );

            var routeInfo         = new RouteInfo();
            var defaultsProcessor = new DefaultsProcessor();

            defaultsProcessor.ProcessDefaults((Route)routes["Hello"], routeInfo);

            Assert.IsTrue(routeInfo.Optional.Contains("id"));
        }
Example #3
0
        public void HandlesAreas()
        {
            var routes  = new RouteCollection();
            var areaReg = new AreaRegistrationContext("Foobar", routes);

            areaReg.MapRoute(
                name: "Hello",
                url: "hello/world",
                defaults: new { controller = "Hello", action = "HelloWorld" }
                );

            var routeInfo         = new RouteInfo();
            var defaultsProcessor = new DefaultsProcessor();

            defaultsProcessor.ProcessDefaults((Route)routes["Hello"], routeInfo);

            Assert.AreEqual("Foobar", routeInfo.Defaults["area"]);
        }
Example #4
0
        public void HandlesMvcControllerAndAction()
        {
            var routes = new RouteCollection();

            routes.MapRoute(
                name: "Hello",
                url: "hello/world",
                defaults: new { controller = "Hello", action = "HelloWorld" }
                );

            var routeInfo         = new RouteInfo();
            var defaultsProcessor = new DefaultsProcessor();

            defaultsProcessor.ProcessDefaults((Route)routes["Hello"], routeInfo);

            Assert.AreEqual("Hello", routeInfo.Defaults["controller"]);
            Assert.AreEqual("HelloWorld", routeInfo.Defaults["action"]);
        }
Example #5
0
        public void HandlesTwoOptionalParameters()
        {
            var routes = new RouteCollection();

            routes.MapRoute(
                name: "Hello",
                url: "hello/world/{first}/{second}",
                defaults: new { controller = "Hello", action = "Index", first = UrlParameter.Optional, second = UrlParameter.Optional }
                );

            var processor = new DefaultsProcessor();
            var routeInfo = new RouteInfo();

            processor.ProcessDefaults((Route)routes["Hello"], routeInfo);

            Assert.AreEqual(2, routeInfo.Defaults.Count);
            Assert.AreEqual(2, routeInfo.Optional.Count);
            Assert.AreEqual("first", routeInfo.Optional[0]);
            Assert.AreEqual("second", routeInfo.Optional[1]);
        }
Example #6
0
        public void HandlesOneOptionalParameter()
        {
            var routes = new RouteCollection();

            routes.MapRoute(
                name: "Hello",
                url: "hello/world/{id}",
                defaults: new { controller = "Hello", action = "Index", id = UrlParameter.Optional }
                );

            var processor = new DefaultsProcessor();
            var routeInfo = new RouteInfo();

            processor.ProcessDefaults((Route)routes["Hello"], routeInfo);

            Assert.AreEqual(2, routeInfo.Defaults.Count);
            Assert.AreEqual("Hello", routeInfo.Defaults["controller"]);
            Assert.AreEqual("Index", routeInfo.Defaults["action"]);
            Assert.AreEqual(1, routeInfo.Optional.Count);
            Assert.AreEqual("id", routeInfo.Optional[0]);
        }