Пример #1
0
        void AssertMultipleFilters(FilterScope filterScope,
                                   Action <IRegistrationBuilder <TFilter1, SimpleActivatorData, SingleRegistrationStyle> > configure1,
                                   Action <IRegistrationBuilder <TFilter2, SimpleActivatorData, SingleRegistrationStyle> > configure2)
        {
            var builder = new ContainerBuilder();

            configure1(builder.Register(c => new TFilter1()));
            configure2(builder.Register(c => new TFilter2()));
            var container = builder.Build();

            SetupMockLifetimeScopeProvider(container);
            var actionDescriptor = new ReflectedActionDescriptor(_baseMethodInfo, _actionName, _controllerDescriptor);
            var provider         = new AutofacFilterProvider();

            var filters = provider.GetFilters(_baseControllerContext, actionDescriptor).ToList();

            Assert.That(filters, Has.Count.EqualTo(2));

            var filter = filters.Single(f => f.Instance is TFilter1);

            Assert.That(filter.Scope, Is.EqualTo(filterScope));
            Assert.That(filter.Order, Is.EqualTo(Filter.DefaultOrder));

            filter = filters.Single(f => f.Instance is TFilter2);
            Assert.That(filter.Scope, Is.EqualTo(filterScope));
            Assert.That(filter.Order, Is.EqualTo(20));
        }
        public void FilterRegistrationsWithoutMetadataIgnored()
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<AuthorizeAttribute>().AsImplementedInterfaces();
            var container = builder.Build();
            SetupMockLifetimeScopeProvider(container);
            var provider = new AutofacFilterProvider();

            var filters = provider.GetFilters(_baseControllerContext, _reflectedActionDescriptor).ToList();
            Assert.That(filters, Has.Count.EqualTo(0));
        }
Пример #3
0
        public void FilterRegistrationsWithoutMetadataIgnored()
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <AuthorizeAttribute>().AsImplementedInterfaces();
            var container = builder.Build();

            SetupMockLifetimeScopeProvider(container);
            var provider = new AutofacFilterProvider();

            var filters = provider.GetFilters(this._baseControllerContext, this._reflectedActionDescriptor).ToList();

            Assert.Empty(filters);
        }
Пример #4
0
        void AssertFilterOverrideRegistration(FilterScope filterScope, ActionDescriptor actionDescriptor,
                                              Action <IRegistrationBuilder <TFilter1, SimpleActivatorData, SingleRegistrationStyle> > configure,
                                              ControllerContext controllerContext)
        {
            var builder = new ContainerBuilder();

            configure(builder.Register(c => new TFilter1()));
            var container = builder.Build();

            SetupMockLifetimeScopeProvider(container);
            var provider = new AutofacFilterProvider();

            var filters = provider.GetFilters(controllerContext, actionDescriptor).ToList();

            Assert.That(filters, Has.Count.EqualTo(1));
            Assert.That(filters[0].Instance, Is.InstanceOf(GetWrapperType()));
            Assert.That(filters[0].Scope, Is.EqualTo(filterScope));
        }
Пример #5
0
        static void AssertOverrideFilter(ActionDescriptor actionDescriptor,
                                         Action <ContainerBuilder> registration, ControllerContext controllerContext)
        {
            var builder = new ContainerBuilder();

            registration(builder);
            var container = builder.Build();

            SetupMockLifetimeScopeProvider(container);
            var provider = new AutofacFilterProvider();

            var filters = provider.GetFilters(controllerContext, actionDescriptor).ToList();

            var filter = filters.Select(info => info.Instance).OfType <AutofacOverrideFilter>().Single();

            Assert.That(filter, Is.InstanceOf <AutofacOverrideFilter>());
            Assert.That(filter.FiltersToOverride, Is.EqualTo(typeof(TFilterType)));
        }
Пример #6
0
        private static void AssertSingleFilter(FilterScope filterScope, ActionDescriptor actionDescriptor,
                                               Action <IRegistrationBuilder <TFilter1, SimpleActivatorData, SingleRegistrationStyle> > configure,
                                               ControllerContext controllerContext)
        {
            var builder = new ContainerBuilder();

            configure(builder.Register(c => new TFilter1()));
            var container = builder.Build();

            SetupMockLifetimeScopeProvider(container);
            var provider = new AutofacFilterProvider();

            var filters = provider.GetFilters(controllerContext, actionDescriptor).ToList();

            Assert.Single(filters);
            Assert.IsType <TFilter1>(filters[0].Instance);
            Assert.Equal(filterScope, filters[0].Scope);
        }