public void DisplayFormatAttributetSetsNullDisplayText() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "NoAttribute").NullDisplayText); Assert.Equal("(null value)", provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "NullDisplayText").NullDisplayText); }
public void ScaffoldColumnAttributeSetsShowForEdit() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.True(provider.GetMetadataForProperty(null, typeof(ScaffoldColumnModel), "NoAttribute").ShowForEdit); Assert.True(provider.GetMetadataForProperty(null, typeof(ScaffoldColumnModel), "ScaffoldColumnTrue").ShowForEdit); Assert.False(provider.GetMetadataForProperty(null, typeof(ScaffoldColumnModel), "ScaffoldColumnFalse").ShowForEdit); }
public void OrderTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Equal(10000, provider.GetMetadataForProperty(null, typeof(DisplayModel), "NoAttribute").Order); Assert.Equal(10000, provider.GetMetadataForProperty(null, typeof(DisplayModel), "OrderNotSet").Order); Assert.Equal(2112, provider.GetMetadataForProperty(null, typeof(DisplayModel), "OrderSet").Order); }
public void IsRequiredTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.True(provider.GetMetadataForProperty(null, typeof(IsRequiredModel), "NonNullableWithout").IsRequired); Assert.False(provider.GetMetadataForProperty(null, typeof(IsRequiredModel), "NullableWithout").IsRequired); Assert.True(provider.GetMetadataForProperty(null, typeof(IsRequiredModel), "NullableWith").IsRequired); }
public void ShortDisplayNameTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "NoAttribute").ShortDisplayName); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "ShortNameNotSet").ShortDisplayName); Assert.Equal("Short name", provider.GetMetadataForProperty(null, typeof(DisplayModel), "ShortNameSet").ShortDisplayName); }
public void SimpleDisplayNameWithUnknownDisplayColumnThrows() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Throws <InvalidOperationException>( () => provider.GetMetadataForType(() => new UnknownDisplayColumnModel(), typeof(UnknownDisplayColumnModel)).SimpleDisplayText, typeof(UnknownDisplayColumnModel).FullName + " has a DisplayColumn attribute for NoPropertyWithThisName, but property NoPropertyWithThisName does not exist."); }
public void DescriptionTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "NoAttribute").Description); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "DescriptionNotSet").Description); Assert.Equal("Description text", provider.GetMetadataForProperty(null, typeof(DisplayModel), "DescriptionSet").Description); }
public void DisplayFormatAttributeSetsConvertEmptyStringToNull() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.True(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "NoAttribute").ConvertEmptyStringToNull); Assert.True(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "ConvertEmptyStringToNullTrue").ConvertEmptyStringToNull); Assert.False(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "ConvertEmptyStringToNullFalse").ConvertEmptyStringToNull); }
public void DisplayFormatAttributeSetEditFormatString() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "NoAttribute").EditFormatString); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "DisplayFormatString").EditFormatString); Assert.Equal("Data {0} format", provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "DisplayAndEditFormatString").EditFormatString); }
public void WatermarkTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "NoAttribute").Watermark); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "PromptNotSet").Watermark); Assert.Equal("Enter stuff here", provider.GetMetadataForProperty(null, typeof(DisplayModel), "PromptSet").Watermark); }
public void DataTypeAttributeSetsDataTypeName() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DataTypeModel), "NoAttribute").DataTypeName); Assert.Equal("EmailAddress", provider.GetMetadataForProperty(null, typeof(DataTypeModel), "EmailAddressProperty").DataTypeName); Assert.Equal("CustomDataType", provider.GetMetadataForProperty(null, typeof(DataTypeModel), "CustomDataTypeProperty").DataTypeName); }
public void DataTypeInfluencedByDisplayFormatAttributeHtmlEncode() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "NoAttribute").DataTypeName); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "HtmlEncodeTrue").DataTypeName); Assert.Equal("Html", provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "HtmlEncodeFalse").DataTypeName); Assert.Equal("Currency", provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "HtmlEncodeFalseWithDataType").DataTypeName); }
public void DataTypeWithDisplayFormatOverrideUsesDisplayFormatOverride() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act string result = provider.GetMetadataForProperty(null, typeof(DisplayFormatModel), "DataTypeWithDisplayFormatOverride").DisplayFormatString; // Assert Assert.Equal("format override", result); }
public void ReadOnlyTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.False(provider.GetMetadataForProperty(null, typeof(ReadOnlyModel), "NoAttributes").IsReadOnly); Assert.True(provider.GetMetadataForProperty(null, typeof(ReadOnlyModel), "ReadOnlyAttribute").IsReadOnly); Assert.True(provider.GetMetadataForProperty(null, typeof(ReadOnlyModel), "EditableAttribute").IsReadOnly); Assert.False(provider.GetMetadataForProperty(null, typeof(ReadOnlyModel), "BothAttributes").IsReadOnly); }
public void GetMetadataForPropertySetsTypeAndPropertyName() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act ModelMetadata result = provider.GetMetadataForProperty(null, typeof(string), "Length"); // Assert Assert.Equal(typeof(int), result.ModelType); Assert.Equal("Length", result.PropertyName); }
public void SimpleDisplayTextForNullClassRevertsToDefaultBehavior() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); var metadata = provider.GetMetadataForProperty(null, typeof(SimpleDisplayTextAttributeModelContainer), "Inner"); // Act string result = metadata.SimpleDisplayText; // Assert Assert.Equal("This is the null display text", result); }
public void GetMetadataForTypeSetsTypeWithNullPropertyName() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act ModelMetadata result = provider.GetMetadataForType(null, typeof(string)); // Assert Assert.Equal(typeof(string), result.ModelType); Assert.Null(result.PropertyName); }
public void UIHintAttributeSetsTemplateHint() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(UIHintModel), "NoAttribute").TemplateHint); Assert.Equal("MyCustomTemplate", provider.GetMetadataForProperty(null, typeof(UIHintModel), "DefaultUIHint").TemplateHint); Assert.Equal("MyMvcTemplate", provider.GetMetadataForProperty(null, typeof(UIHintModel), "MvcUIHint").TemplateHint); Assert.Null(provider.GetMetadataForProperty(null, typeof(UIHintModel), "NoMvcUIHint").TemplateHint); Assert.Equal("MyMvcTemplate", provider.GetMetadataForProperty(null, typeof(UIHintModel), "MultipleUIHint").TemplateHint); }
public void DisplayNameTests() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "NoAttribute").DisplayName); Assert.Equal("Value from DisplayName", provider.GetMetadataForProperty(null, typeof(DisplayModel), "DisplayNameAttributeNoDisplayAttribute").DisplayName); Assert.Null(provider.GetMetadataForProperty(null, typeof(DisplayModel), "DisplayAttributeNameNotSet").DisplayName); Assert.Equal("Non empty name", provider.GetMetadataForProperty(null, typeof(DisplayModel), "DisplayAttributeNonEmptyName").DisplayName); Assert.Equal("Value from DisplayName", provider.GetMetadataForProperty(null, typeof(DisplayModel), "BothAttributesNameNotSet").DisplayName); Assert.Equal("Value from Display", provider.GetMetadataForProperty(null, typeof(DisplayModel), "BothAttributes").DisplayName); }
public void GetMetadataForPropertiesSetTypesAndPropertyNames() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act IEnumerable <ModelMetadata> result = provider.GetMetadataForProperties("foo", typeof(string)); // Assert Assert.True(result.Any(m => m.ModelType == typeof(int) && m.PropertyName == "Length" && (int)m.Model == 3)); }
public void SimpleDisplayTextForNonNullClassWithNullDisplayColumnValueRevertsToDefaultBehavior() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); var model = new SimpleDisplayTextAttributeModel(); var metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.Equal("42", result); // Falls back to the default logic of first property value }
public void SimpleDisplayTextForTypeWithWriteOnlyDisplayColumnThrows() { // Arrange var provider = new CachedDataAnnotationsModelMetadataProvider(); // Act & Assert Assert.Throws <InvalidOperationException>( () => provider.GetMetadataForType(() => new WriteOnlyDisplayColumnModel(), typeof(WriteOnlyDisplayColumnModel)).SimpleDisplayText, typeof(WriteOnlyDisplayColumnModel).FullName + " has a DisplayColumn attribute for WriteOnlyProperty, but property WriteOnlyProperty does not have a public getter."); Assert.Throws <InvalidOperationException>( () => provider.GetMetadataForType(() => new PrivateReadPublicWriteDisplayColumnModel(), typeof(PrivateReadPublicWriteDisplayColumnModel)).SimpleDisplayText, typeof(PrivateReadPublicWriteDisplayColumnModel).FullName + " has a DisplayColumn attribute for PrivateReadPublicWriteProperty, but property PrivateReadPublicWriteProperty does not have a public getter."); }
public void SimpleDisplayTextForNonNullClassWithNonNullDisplayColumnValue() { // Arrange string expected = "Custom property display value"; var provider = new CachedDataAnnotationsModelMetadataProvider(); var model = new SimpleDisplayTextAttributeModel { DisplayColumnProperty = expected }; var metadata = provider.GetMetadataForType(() => model, typeof(SimpleDisplayTextAttributeModel)); // Act string result = metadata.SimpleDisplayText; // Assert Assert.Equal(expected, result); }
public CachedDataAnnotationsModelMetadata(CachedDataAnnotationsModelMetadataProvider provider, Type containerType, Type modelType, string propertyName, IEnumerable <Attribute> attributes) : base(provider, containerType, modelType, propertyName, new CachedDataAnnotationsMetadataAttributes(attributes.ToArray())) { }