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 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 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 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 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); }