public void ContainerControllerFactory_CreateController_ReturnsNull_WhenGetTypeReturnsNull()
        {
            var factory = new TestContainerControllerFactory(new Mock <IContainerResolver>().Object);

            factory.GetControllerTypeDelegate = () => null;
            Assert.Null(factory.CreateController(null, ""));
        }
        public void ContainerControllerFactory_GetControllerType_ReturnsNull_WhenContainerDoesntContainController()
        {
            var container = new Container();
            var factory   = new TestContainerControllerFactory(new ContainerResolver(container));

            Assert.Null(factory.GetControllerType_(new Mock <RequestContext>().Object, "Proper"));
        }
        public void ContainerControllerFactory_GetControllerType_ReturnsType_WhenContainerContainsController_SpecifiedControllerIsInRandomCase()
        {
            var container = new Container();

            container.Inject <IController>(new ProperController());
            var factory = new TestContainerControllerFactory(new ContainerResolver(container));

            Assert.Equal(typeof(ProperController), factory.GetControllerType_(new Mock <RequestContext>().Object, "PrOpEr"));
        }
        public void ContainerControllerFactory_CreateController_ReturnsExpectedTypeFromContainer_GivenContainerAndProperType()
        {
            var container = new Container();
            var controller = new ProperController();
            container.Inject<ProperController>(controller);
            var factory = new TestContainerControllerFactory(new ContainerResolver(container));
            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.Same(controller, factory.CreateController(null, ""));
        }
        public void ContainerControllerFactory_CreateController_ReturnsControllerWithActionInvoker_WhenActionInvokerIsNotContainerActionInvoker()
        {
            var container = new Container();
            var controller = new ProperController();
            container.Inject<ProperController>(controller);
            var factory = new TestContainerControllerFactory(new ContainerResolver(container));
            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.IsType<ContainerControllerActionInvoker>((factory.CreateController(null, "") as ProperController).ActionInvoker);
        }
        public void ContainerControllerFactory_CreateController_ReturnsControllerWithActionInvoker_WhenActionInvokerIsNotContainerActionInvoker()
        {
            var container  = new Container();
            var controller = new ProperController();

            container.Inject <ProperController>(controller);
            var factory = new TestContainerControllerFactory(new ContainerResolver(container));

            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.IsType <ContainerControllerActionInvoker>((factory.CreateController(null, "") as ProperController).ActionInvoker);
        }
        public void ContainerControllerFactory_CreateController_ReturnsExpectedTypeFromContainer_GivenContainerAndProperType()
        {
            var container  = new Container();
            var controller = new ProperController();

            container.Inject <ProperController>(controller);
            var factory = new TestContainerControllerFactory(new ContainerResolver(container));

            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.Same(controller, factory.CreateController(null, ""));
        }
        public void ContainerControllerFactory_CreateController_DoesntSetActionInvoker_WhenOfCorrectType()
        {
            var container = new Container();
            var containerResolver = new ContainerResolver(container);
            var controller = new ProperController();
            var actionInvoker = new ContainerControllerActionInvoker(containerResolver);

            controller.ActionInvoker = actionInvoker;
            container.Inject<ProperController>(controller);
            var factory = new TestContainerControllerFactory(containerResolver);
            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.Same(actionInvoker, (factory.CreateController(null, "") as ProperController).ActionInvoker);
        }
        public void ContainerControllerFactory_CreateController_DoesntSetActionInvoker_WhenOfCorrectType()
        {
            var container         = new Container();
            var containerResolver = new ContainerResolver(container);
            var controller        = new ProperController();
            var actionInvoker     = new ContainerControllerActionInvoker(containerResolver);

            controller.ActionInvoker = actionInvoker;
            container.Inject <ProperController>(controller);
            var factory = new TestContainerControllerFactory(containerResolver);

            factory.GetControllerTypeDelegate = () => typeof(ProperController);

            Assert.Same(actionInvoker, (factory.CreateController(null, "") as ProperController).ActionInvoker);
        }
 public void ContainerControllerFactory_GetControllerType_ReturnsType_WhenContainerContainsController_SpecifiedControllerContainsControllerAppendage()
 {
     var container = new Container();
     container.Inject<IController>(new ProperController());
     var factory = new TestContainerControllerFactory(new ContainerResolver(container));
     Assert.Equal(typeof(ProperController), factory.GetControllerType_(new Mock<RequestContext>().Object, "ProperController"));
 }
 public void ContainerControllerFactory_GetControllerType_ReturnsNull_WhenContainerDoesntContainController()
 {
     var container = new Container();
     var factory = new TestContainerControllerFactory(new ContainerResolver(container));
     Assert.Null(factory.GetControllerType_(new Mock<RequestContext>().Object, "Proper"));
 }
 public void ContainerControllerFactory_CreateController_ReturnsNull_WhenGetTypeReturnsNull()
 {
     var factory = new TestContainerControllerFactory(new Mock<IContainerResolver>().Object);
     factory.GetControllerTypeDelegate = () => null;
     Assert.Null(factory.CreateController(null, ""));
 }