public void Test_Ninject_should_inject_for_Controller_Attributes()
        {
            // arrange
            var controllerContext = new ControllerContext()
            {
                Controller = new ContollerToBeInjected()
            };
            var mockControllerDescriptor = new Mock <ControllerDescriptor>();

            mockControllerDescriptor
            .Setup(cd => cd.GetCustomAttributes(typeof(FilterAttribute), true))
            .Returns(new FilterAttribute[] { new MyFilterAttribute() });
            var mockActionDescriptor = new Mock <ActionDescriptor>();

            mockActionDescriptor.Setup(ad => ad.ControllerDescriptor).Returns(mockControllerDescriptor.Object);

            var mockKernel = new Mock <IKernel>();

            mockKernel.Setup(k => k.Inject(It.IsAny <MyFilterAttribute>())).Verifiable();
            var provider = new NinjectFilterAttributeFilterProvider(mockKernel.Object);

            // act
            var filters = provider.GetFilters(controllerContext, mockActionDescriptor.Object);

            // assert
            mockKernel.Verify();
        }
        public void Test_Ninject_should_inject_for_Action_Attributes()
        {
            // Arrange
            var context = new ControllerContext {
                Controller = new ControllerWithActionAttribute()
            };
            var controllerDescriptor = new ReflectedControllerDescriptor(context.Controller.GetType());
            var action           = context.Controller.GetType().GetMethod("ActionMethod");
            var actionDescriptor = new ReflectedActionDescriptor(action, "ActionMethod", controllerDescriptor);

            var mockKernel = new Mock <IKernel>();

            mockKernel.Setup(k => k.Inject(It.IsAny <MyFilterAttribute>())).Verifiable();
            var provider = new NinjectFilterAttributeFilterProvider(mockKernel.Object);

            // act
            provider.GetFilters(context, actionDescriptor);

            // assert
            mockKernel.Verify();
        }