Exemplo n.º 1
0
        public void TestRouteBuilder()
        {
            List <MethodInfo> methods = SitkaController.FindControllerActions(typeof(RouteTableBuilderTestController));

            Assert.That(methods.Count, Is.EqualTo(6));

            List <SitkaRouteTableEntry> routeEntries = RouteTableBuilder.SetupRouteTableImpl(methods);

            Assert.That(routeEntries.Count, Is.EqualTo(11 + GetDefaultRouteCount()));
        }
Exemplo n.º 2
0
        public void CanFindActionsInheritedFromBaseClass()
        {
            var controllerActionMethods = SitkaController.FindControllerActions(typeof(MyTest1Controller));
            var methodNames             = controllerActionMethods.Select(x => String.Format("{0}.{1}", x.ReflectedType.Name, x.Name)).ToList();
            var expected = new[] { "MyTest1Controller.MyAction1", "MyTest1Controller.ActionWithNoParameters", "MyTest1Controller.ActionWithOneParameter", "MyTest1Controller.BaseAction" };

            Assert.That(methodNames, Is.EquivalentTo(expected), "Should find both base declared actions and derived actions");

            var abstractBaseControllerActionMethods = SitkaController.FindControllerActions(typeof(MyAbstractBaseController));

            Assert.That(abstractBaseControllerActionMethods, Is.Empty, "Should not find any in abstract base classes - they don't count for routes");
        }
Exemplo n.º 3
0
        public void RoutesShouldNotCollide()
        {
            List <MethodInfo>           allTestControllerActions = SitkaController.FindControllerActions(typeof(MyAbstractBaseController));
            List <SitkaRouteTableEntry> routeEntries             = RouteTableBuilder.SetupRouteTableImpl(allTestControllerActions);

            Assert.That(routeEntries.All(re => re != null));

            List <IGrouping <string, SitkaRouteTableEntry> > duplicateRouteNames = routeEntries.ToLookup(x => x.RouteName).Where(grp => grp.Count() > 1).ToList();

            Assert.That(duplicateRouteNames, Is.Empty, "All route names should be unique but there are duplicates");

            List <IGrouping <string, SitkaRouteTableEntry> > duplicateRouteUrls = routeEntries.ToLookup(x => x.RouteUrl).Where(grp => grp.Count() > 1).ToList();

            Assert.That(duplicateRouteUrls, Is.Empty, "All route urls should be unique but there are duplicates");
        }
Exemplo n.º 4
0
        private static void TestRouteParameterOptionality(int expectedCountOfRoutes, Type type, bool shouldThrow)
        {
            List <MethodInfo> methods = SitkaController.FindControllerActions(type);

            Assert.That(methods, Is.Not.Empty, $"Test Precondition: the test type {type} should have a controller action on it");

            if (shouldThrow)
            {
                Assert.Throws <PreconditionException>(() => RouteTableBuilder.SetupRouteTableImpl(methods), $"An illegal route was allowed into the route table! {type.Name}");
            }
            else
            {
                var routeEntries = new List <SitkaRouteTableEntry>();
                Assert.DoesNotThrow(() => routeEntries = RouteTableBuilder.SetupRouteTableImpl(methods), $"A legal route was not allowed into the route table! {type.Name}");
                Assert.That(routeEntries.Count, Is.EqualTo(expectedCountOfRoutes), $"Route count is not what was expected. {type.Name}");
            }
        }