private TestControllerActionInvoker CreateInvoker( IFilterMetadata[] filters, ControllerActionDescriptor actionDescriptor, object controller) { var httpContext = GetHttpContext(); httpContext.Response.Body = new MemoryStream(); var options = new MvcOptions(); var optionsAccessor = new Mock <IOptions <MvcOptions> >(); optionsAccessor .SetupGet(o => o.Value) .Returns(options); var actionContext = new ActionContext(httpContext, new RouteData(), actionDescriptor); var diagnosticSource = new DiagnosticListener("Microsoft.AspNetCore"); diagnosticSource.SubscribeWithAdapter(new TestDiagnosticListener()); var invoker = new TestControllerActionInvoker( filters, new MockControllerFactory(controller ?? this), new NullLoggerFactory().CreateLogger <ControllerActionInvoker>(), diagnosticSource, new ActionResultTypeMapper(), actionContext, new List <IValueProviderFactory>(), maxAllowedErrorsInModelState: 200); return(invoker); }
private TestControllerActionInvoker CreateInvoker( IFilterMetadata[] filters, ControllerActionDescriptor actionDescriptor, object controller) { var httpContext = GetHttpContext(); httpContext.Response.Body = new MemoryStream(); var options = new MvcOptions(); var optionsAccessor = new Mock <IOptions <MvcOptions> >(); optionsAccessor .SetupGet(o => o.Value) .Returns(options); var actionContext = new ActionContext(httpContext, new RouteData(), actionDescriptor); var filterProvider = new Mock <IFilterProvider>(MockBehavior.Strict); filterProvider .Setup(fp => fp.OnProvidersExecuting(It.IsAny <FilterProviderContext>())) .Callback <FilterProviderContext>(context => { foreach (var filterMetadata in filters) { context.Results.Add(new FilterItem(new FilterDescriptor(filterMetadata, FilterScope.Action)) { Filter = filterMetadata, }); } }); filterProvider .Setup(fp => fp.OnProvidersExecuted(It.IsAny <FilterProviderContext>())) .Verifiable(); filterProvider .SetupGet(fp => fp.Order) .Returns(-1000); var diagnosticSource = new DiagnosticListener("Microsoft.AspNetCore"); diagnosticSource.SubscribeWithAdapter(new TestDiagnosticListener()); var invoker = new TestControllerActionInvoker( new[] { filterProvider.Object }, new MockControllerFactory(controller ?? this), new TestControllerArgumentBinder(actionParameters: null), new NullLoggerFactory().CreateLogger <ControllerActionInvoker>(), diagnosticSource, actionContext, new List <IValueProviderFactory>(), maxAllowedErrorsInModelState: 200); return(invoker); }