public void OnPageHandlerExecuting_SetsSubject() { // Arrange var filter = new PageViewDataAttributeFilter(Array.Empty <LifecycleProperty>()); var handler = new object(); var httpContext = new DefaultHttpContext(); var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var pageContext = new PageContext(actionContext); var context = new PageHandlerExecutingContext(pageContext, new IFilterMetadata[0], new HandlerMethodDescriptor(), new Dictionary <string, object>(), handler); // Act filter.OnPageHandlerExecuting(context); // Assert Assert.Same(handler, filter.Subject); }
public void OnPageHandlerExecuting_AddsFeature() { // Arrange var filter = new PageViewDataAttributeFilter(Array.Empty <LifecycleProperty>()); var handler = new object(); var httpContext = new DefaultHttpContext(); var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var pageContext = new PageContext(actionContext); var context = new PageHandlerExecutingContext(pageContext, new IFilterMetadata[0], new HandlerMethodDescriptor(), new Dictionary <string, object>(), handler); // Act filter.OnPageHandlerExecuting(context); // Assert var feature = Assert.Single(httpContext.Features, f => f.Key == typeof(IViewDataValuesProviderFeature)); Assert.Same(filter, feature.Value); }
public void ProvideValues_AddsNonNullPropertyValuesToViewData() { // Arrange var type = typeof(TestModel); var properties = new[] { new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop1)), "Prop1"), new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop2)), "Prop2"), new LifecycleProperty(type.GetProperty(nameof(TestModel.Prop3)), "Prop3"), }; var controller = new TestModel(); var filter = new PageViewDataAttributeFilter(properties) { Subject = controller, }; var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()); // Act controller.Prop1 = "New-Value"; filter.ProvideViewDataValues(viewData); // Assert Assert.Collection( viewData.OrderBy(kvp => kvp.Key), kvp => { Assert.Equal("Prop1", kvp.Key); Assert.Equal("New-Value", kvp.Value); }, kvp => { Assert.Equal("Prop2", kvp.Key); Assert.Equal("Test", kvp.Value); }); }