public void WrapperResolvesActionFilterFromDependencyScope()
        {
            var builder = new ContainerBuilder();
            builder.Register<ILogger>(c => new Logger()).InstancePerDependency();
            var activationCount = 0;
            builder.Register<IAutofacActionFilter>(c => new TestActionFilter(c.Resolve<ILogger>()))
                .AsWebApiActionFilterFor<TestController>(c => c.Get())
                .InstancePerApiRequest()
                .OnActivated(e => activationCount++);
            var container = builder.Build();

            var resolver = new AutofacWebApiDependencyResolver(container);
            var configuration = new HttpConfiguration {DependencyResolver = resolver};
            var requestMessage = new HttpRequestMessage();
            requestMessage.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, configuration);
            var contollerContext = new HttpControllerContext {Request = requestMessage};
            var controllerDescriptor = new HttpControllerDescriptor {ControllerType = typeof(TestController)};
            var methodInfo = typeof(TestController).GetMethod("Get");
            var actionDescriptor = new ReflectedHttpActionDescriptor(controllerDescriptor, methodInfo);
            var httpActionContext = new HttpActionContext(contollerContext, actionDescriptor);
            var actionContext = new HttpActionContext(contollerContext, actionDescriptor);
            var httpActionExecutedContext = new HttpActionExecutedContext(actionContext, null);
            var metadata = new FilterMetadata
            {
                ControllerType = typeof(TestController), FilterScope = FilterScope.Action, MethodInfo = methodInfo
            };
            var wrapper = new ActionFilterWrapper(metadata);

            wrapper.OnActionExecuting(httpActionContext);
            Assert.That(activationCount, Is.EqualTo(1));

            wrapper.OnActionExecuted(httpActionExecutedContext);
            Assert.That(activationCount, Is.EqualTo(1));
        }
 public void ReturnsCorrectMetadataKey()
 {
     var wrapper = new ActionFilterWrapper(new FilterMetadata());
     Assert.That(wrapper.MetadataKey, Is.EqualTo(AutofacWebApiFilterProvider.ActionFilterMetadataKey));
 }