public void IsBindingAllowed_ReturnsTrue_ForTypes(Type modelType) { // Arrange var provider = new EmptyModelMetadataProvider(); var detailsProvider = new EmptyCompositeMetadataDetailsProvider(); var key = ModelMetadataIdentity.ForType(modelType); var cache = new DefaultMetadataDetails(key, new ModelAttributes(new object[0], null, null)); cache.BindingMetadata = new BindingMetadata() { IsBindingAllowed = false, // Will be ignored. }; var metadata = new DefaultModelMetadata(provider, detailsProvider, cache); // Act var isBindingAllowed = metadata.IsBindingAllowed; // Assert Assert.True(isBindingAllowed); }
public void ValidateChildren_OverrideFalse() { // Arrange var detailsProvider = new EmptyCompositeMetadataDetailsProvider(); var provider = new DefaultModelMetadataProvider(detailsProvider); var key = ModelMetadataIdentity.ForType(typeof(XmlDocument)); var cache = new DefaultMetadataDetails(key, new ModelAttributes(new object[0])); cache.ValidationMetadata = new ValidationMetadata() { ValidateChildren = false, }; var metadata = new DefaultModelMetadata(provider, detailsProvider, cache); // Act var validateChildren = metadata.ValidateChildren; // Assert Assert.False(validateChildren); }
public void IsReadOnly_ReturnsFalse_ForType() { // Arrange var detailsProvider = new EmptyCompositeMetadataDetailsProvider(); var provider = new DefaultModelMetadataProvider(detailsProvider); var key = ModelMetadataIdentity.ForType(typeof(int[])); var cache = new DefaultMetadataDetails(key, new ModelAttributes(new object[0])); cache.BindingMetadata = new BindingMetadata() { IsReadOnly = true, // Will be ignored. }; var metadata = new DefaultModelMetadata(provider, detailsProvider, cache); // Act var isReadOnly = metadata.IsReadOnly; // Assert Assert.False(isReadOnly); }
public void PropertyValidationFilter_ReflectsFilter_FromValidationMetadata(IPropertyValidationFilter value) { // Arrange var detailsProvider = new EmptyCompositeMetadataDetailsProvider(); var provider = new DefaultModelMetadataProvider(detailsProvider); var key = ModelMetadataIdentity.ForType(typeof(int)); var cache = new DefaultMetadataDetails(key, new ModelAttributes(new object[0], null, null)) { ValidationMetadata = new ValidationMetadata { PropertyValidationFilter = value, }, }; var metadata = new DefaultModelMetadata(provider, detailsProvider, cache); // Act var validationFilter = metadata.PropertyValidationFilter; // Assert Assert.Same(value, validationFilter); }
public void PropertiesProperty_WithDefaultOrder_OrdersPropertyNamesAsProvided( IEnumerable <string> originalNames, IEnumerable <string> expectedNames) { // Arrange var provider = new Mock <IModelMetadataProvider>(MockBehavior.Strict); var detailsProvider = new EmptyCompositeMetadataDetailsProvider(); var expectedProperties = new List <DefaultModelMetadata>(); foreach (var originalName in originalNames) { expectedProperties.Add(new DefaultModelMetadata( provider.Object, detailsProvider, new DefaultMetadataDetails( ModelMetadataIdentity.ForProperty(typeof(int), originalName, typeof(string)), attributes: new ModelAttributes(new object[0], new object[0])))); } provider .Setup(p => p.GetMetadataForProperties(typeof(string))) .Returns(expectedProperties); var key = ModelMetadataIdentity.ForType(typeof(string)); var cache = new DefaultMetadataDetails(key, new ModelAttributes(new object[0])); var metadata = new DefaultModelMetadata(provider.Object, detailsProvider, cache); // Act var properties = metadata.Properties; // Assert Assert.Equal(expectedNames.Count(), properties.Count); Assert.Equal(expectedNames.ToArray(), properties.Select(p => p.PropertyName).ToArray()); }