public override void Given()
            {
                var fluentMvcObjectFactory = CreateStub <IFluentMvcObjectFactory>();

                fluentMvcObjectFactory.Stub(x => x.Resolve <object>(Arg <Type> .Is.Anything)).Return(new TestFilter());

                actionFilterRegistry = new ActionFilterRegistry(fluentMvcObjectFactory);
                globalFilter         = new GlobalActionFilterRegistryItem(typeof(TestActionFilter), PredefinedConstraint.True);

                Expression <Func <TestController, object> > func = c => c.ReturnPost();

                actionDescriptor = func.CreateActionDescriptor();

                controllerFilterItem       = new ControllerRegistryItem(typeof(TestActionFilter3), PredefinedConstraint.True, actionDescriptor.ControllerDescriptor);
                controllerActionFilterItem = new ControllerActionRegistryItem(typeof(TestActionFilter2),
                                                                              PredefinedConstraint.True,
                                                                              actionDescriptor,
                                                                              actionDescriptor.ControllerDescriptor);

                actionFilterRegistry.Add(globalFilter);
                actionFilterRegistry.Add(controllerFilterItem);
                actionFilterRegistry.Add(controllerActionFilterItem);

                resolver = new ActionFilterResolver(actionFilterRegistry, fluentMvcObjectFactory);
            }
        public override void Given()
        {
            Expression <Func <TestController, object> >       func  = c => c.ReturnPost();
            Expression <Func <SecondTestController, object> > func2 = c => c.ReturnPost();
            Expression <Func <ThirdTestController, object> >  func3 = c => c.ReturnPost();

            actionDescriptor         = func.CreateActionDescriptor();
            secondActionDescriptor   = func2.CreateActionDescriptor();
            excludedActionDescriptor = func3.CreateActionDescriptor();

            fluentMvcObjectFactory = CreateStub <IFluentMvcObjectFactory>();
            fluentMvcObjectFactory.Stub(x => x.Resolve <object>(Arg <Type> .Is.Anything)).Return(CreateStub <IActionFilter>());

            actionFilterRegistry = new ActionFilterRegistry(fluentMvcObjectFactory);
            Configuration        = FluentMvcConfiguration.Create(CreateStub <IFluentMvcResolver>(), actionFilterRegistry, CreateStub <IActionResultRegistry>(), CreateStub <IFilterConventionCollection>())
                                   .WithFilter <AcceptVerbsAttribute>()
                                   .WithFilter <AuthorizeAttribute>(Except.For <TestController>().AndFor(func3));

            resolver = new ActionFilterResolver(actionFilterRegistry, fluentMvcObjectFactory);
        }
            public override void Given()
            {
                var fluentMvcObjectFactory = CreateStub<IFluentMvcObjectFactory>();
                fluentMvcObjectFactory.Stub(x => x.Resolve<object>(Arg<Type>.Is.Anything)).Return(new TestFilter());

                actionFilterRegistry = new ActionFilterRegistry(fluentMvcObjectFactory);
                globalFilter = new GlobalActionFilterRegistryItem(typeof(TestActionFilter), PredefinedConstraint.True);

                Expression<Func<TestController, object>> func = c => c.ReturnPost();
                actionDescriptor = func.CreateActionDescriptor();

                controllerFilterItem = new ControllerRegistryItem(typeof(TestActionFilter3), PredefinedConstraint.True, actionDescriptor.ControllerDescriptor);
                controllerActionFilterItem = new ControllerActionRegistryItem(typeof(TestActionFilter2),
                                                                          PredefinedConstraint.True,
                                                                          actionDescriptor,
                                                                          actionDescriptor.ControllerDescriptor);

                actionFilterRegistry.Add(globalFilter);
                actionFilterRegistry.Add(controllerFilterItem);
                actionFilterRegistry.Add(controllerActionFilterItem);

                resolver = new ActionFilterResolver(actionFilterRegistry, fluentMvcObjectFactory);
            }
        public override void Given()
        {
            Expression<Func<TestController, object>> func = c => c.ReturnPost();
            Expression<Func<SecondTestController, object>> func2 = c => c.ReturnPost();
            Expression<Func<ThirdTestController, object>> func3 = c => c.ReturnPost();
            actionDescriptor = func.CreateActionDescriptor();
            secondActionDescriptor = func2.CreateActionDescriptor();
            excludedActionDescriptor = func3.CreateActionDescriptor();

            fluentMvcObjectFactory = CreateStub<IFluentMvcObjectFactory>();
            fluentMvcObjectFactory.Stub(x => x.Resolve<object>(Arg<Type>.Is.Anything)).Return(CreateStub<IActionFilter>());

            actionFilterRegistry = new ActionFilterRegistry(fluentMvcObjectFactory);
            Configuration = FluentMvcConfiguration.Create(CreateStub<IFluentMvcResolver>(), actionFilterRegistry, CreateStub<IActionResultRegistry>(), CreateStub<IFilterConventionCollection>())
                .WithFilter<AcceptVerbsAttribute>()
                .WithFilter<AuthorizeAttribute>(Except.For<TestController>().AndFor(func3));

            resolver = new ActionFilterResolver(actionFilterRegistry, fluentMvcObjectFactory);
        }
        public override void Given()
        {
            actionFilterRegistry = new ActionFilterRegistry(CreateStub<IFluentMvcObjectFactory>());
            Expression<Func<SecondTestController, object>> func = controller => controller.ReturnPost();
            Expression<Func<TestController, object>> exceptForFunc = controller => controller.ReturnViewResult();
            actionDescriptor = func.CreateActionDescriptor();
            exceptforActionDescriptor = exceptForFunc.CreateActionDescriptor();
            Configuration = FluentMvcConfiguration.Create(CreateStub<IFluentMvcResolver>(), actionFilterRegistry, CreateStub<IActionResultRegistry>(), CreateStub<IFilterConventionCollection>())
                .WithFilter<TestActionFilter>(Apply.When<TrueReturningConstraint>().ExceptFor(exceptForFunc));

            resolver = new ActionFilterResolver(actionFilterRegistry, CreateStub<IFluentMvcObjectFactory>());
        }