Ejemplo n.º 1
0
        public void Should_Register_ModuleControllers_Correctly()
        {
            var descriptor       = new TestWebModuleDescriptor();
            var context          = new WebModuleRegistrationContext(descriptor);
            var containerBuilder = new ContainerBuilder();

            var controllerExtensions = new Mock <IControllerExtensions>();

            controllerExtensions
            .Setup(ce => ce.GetControllerTypes(It.IsAny <Assembly>()))
            .Returns <Assembly>(assembly => new[] { typeof(TestController1), typeof(TestController2) });

            descriptor.RegisterModuleControllers(context, containerBuilder, controllerExtensions.Object);

            // Routes registration
            Assert.AreEqual(context.Routes.Count, 1);
            var route = (Route)context.Routes[0];

            Assert.AreEqual(route.Url, "module-testwebmodule/{controller}/{action}");
            Assert.AreEqual(route.DataTokens["area"], "module-testwebmodule");

            // Types registration
            var container = containerBuilder.Build();

            var controller1 = container.Resolve(typeof(TestController1));
            var controller2 = container.Resolve(typeof(TestController2));

            TestController3 controller3 = null;

            try
            {
                controller3 = container.Resolve <TestController3>();
            }
            catch
            {
            }

            Assert.IsNotNull(controller1);
            Assert.IsNotNull(controller2);
            Assert.IsNull(controller3);
        }