Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }