public void GetViewDataProperties_ReturnsNull_IfTypeDoesNotHaveAnyViewDataProperties() { // Arrange var type = typeof(TestController_NoViewDataProperties); // Act var result = ViewDataAttributePropertyProvider.GetViewDataProperties(type); // Assert Assert.Null(result); }
public void GetViewDataProperties_ReturnsViewDataProperties_FromBaseTypes() { // Arrange var type = typeof(DerivedController); // Act var result = ViewDataAttributePropertyProvider.GetViewDataProperties(type); // Assert Assert.Collection( result.OrderBy(p => p.Key), property => Assert.Equal(nameof(BaseController.BaseProperty), property.PropertyInfo.Name), property => Assert.Equal(nameof(DerivedController.DerivedProperty), property.PropertyInfo.Name)); }
public void GetViewDataProperties_UsesKeyFromViewDataAttribute() { // Arrange var type = typeof(PropertyWithKeyController); // Act var result = ViewDataAttributePropertyProvider.GetViewDataProperties(type); // Assert Assert.Collection( result.OrderBy(p => p.Key), property => { Assert.Equal(nameof(PropertyWithKeyController.Different), property.PropertyInfo.Name); Assert.Equal("Test", property.Key); }); }
/// <inheritdoc /> public void OnProvidersExecuting(PageApplicationModelProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var handlerType = context.PageApplicationModel.HandlerType.AsType(); var viewDataProperties = ViewDataAttributePropertyProvider.GetViewDataProperties(handlerType); if (viewDataProperties == null) { return; } var filter = new PageViewDataAttributeFilterFactory(viewDataProperties); context.PageApplicationModel.Filters.Add(filter); }
/// <inheritdoc /> public void OnProvidersExecuting(ApplicationModelProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } foreach (var controllerModel in context.Result.Controllers) { var controllerType = controllerModel.ControllerType.AsType(); var viewDataProperties = ViewDataAttributePropertyProvider.GetViewDataProperties(controllerType); if (viewDataProperties == null) { continue; } var filter = new ControllerViewDataAttributeFilterFactory(viewDataProperties); controllerModel.Filters.Add(filter); } }