public void OnActionExecuting_SetsSubject()
        {
            // Arrange
            var filter        = new ControllerViewDataAttributeFilter(Array.Empty <LifecycleProperty>());
            var controller    = new object();
            var httpContext   = new DefaultHttpContext();
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());
            var context       = new ActionExecutingContext(actionContext, new IFilterMetadata[0], new Dictionary <string, object>(), controller);

            // Act
            filter.OnActionExecuting(context);

            // Assert
            Assert.Same(controller, filter.Subject);
        }
        public void OnActionExecuting_AddsFeature()
        {
            // Arrange
            var filter        = new ControllerViewDataAttributeFilter(Array.Empty <LifecycleProperty>());
            var controller    = new object();
            var httpContext   = new DefaultHttpContext();
            var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor());
            var context       = new ActionExecutingContext(actionContext, new IFilterMetadata[0], new Dictionary <string, object>(), controller);

            // Act
            filter.OnActionExecuting(context);

            // Assert
            var feature = Assert.Single(httpContext.Features, f => f.Key == typeof(IViewDataValuesProviderFeature));

            Assert.Same(filter, feature.Value);
        }