public void GetProperties_InternalConverter_When_Property_Is_Overridden_And_Base_Has_TypeConverterAttribute() { TypeConverterHelper.GetProperties(typeof(_MyClass2))[nameof(_MyClass2.ByteProperty)] .InternalConverter .Should() .BeNull(); }
public void GetProperties_InternalConverter_When_No_TypeConverterAttribute() { TypeConverterHelper.GetProperties(typeof(_MyType1))[nameof(_MyType1.IntProperty)] .InternalConverter .Should() .BeNull(); }
public void GetProperties_InternalConverter_When_TypeConverterAttribute() { TypeConverterHelper.GetProperties(typeof(_MyType3))[nameof(_MyType3.DateTimeProperty)] .InternalConverter .Should() .BeOfType <_MyDateTimeConverter>(); }
public void GetProperties_Converter_When_TypeConverterAttribute_And_PropertyType_Has_TypeConverter() { TypeConverterHelper.GetProperties(typeof(_MyClass3))[nameof(_MyClass3.ByteProperty)] .Converter .Should() .BeOfType <_MyByteConverter1>(); }
public void GetProperties_Converter_When_No_TypeConverterAttribute_And_PropertyType_Has_TypeConverter() { TypeConverterHelper.GetProperties(typeof(_MyType1))[nameof(_MyType1.IntProperty)] .Converter .Should() .BeSameAs(TypeConverterHelper.GetConverter(typeof(int))); }
public void GetProperties_Converter_When_No_TypeConverterAttribute_And_PropertyType_Has_No_TypeConverter() { TypeConverterHelper.GetProperties(typeof(_MyClass5))[nameof(_MyClass5.MyType1Property)] .Converter .Should() .BeNull(); }
public static object GetPropertyValue(Type xamlType, string propertyName, string xamlValue, Func <object> fallbackValueFunc) { ReflectedPropertyData property = TypeConverterHelper.GetProperties(xamlType)[propertyName]; if (property == null) { throw new InvalidOperationException( $"Property '{propertyName}' was not found in type '{xamlType}'." ); } // Note: here we do not want to use the Converter property as it would return a non-null // converter for several known types for which object instantiation can be optimized at // compilation and we would waste time parsing strings. TypeConverter converter = property.InternalConverter; if (converter != null) { return(converter.ConvertFromInvariantString(xamlValue)); } if (fallbackValueFunc != null) { return(fallbackValueFunc()); } throw new InvalidOperationException( $"Failed to create a '{property.PropertyType}' from the text '{xamlValue}'." ); }
public void GetProperties_When_Property_Is_Overridden() { var properties = TypeConverterHelper.GetProperties(typeof(_MyClass2)); properties.Should().HaveCount(1); properties[0].Name.Should().Be(nameof(_MyClass2.ByteProperty)); properties[0].ComponentType.Should().BeSameAs(typeof(_MyClass2)); }
public void GetProperties_When_New_Property_Hides_Base_Property() { var properties = TypeConverterHelper.GetProperties(typeof(_MyType5)); properties.Should().HaveCount(1); properties[0].Name.Should().Be(nameof(_MyType5.FloatProperty)); properties[0].ComponentType.Should().BeSameAs(typeof(_MyType5)); }
public void GetProperties_Inheritance_1() { var properties = TypeConverterHelper.GetProperties(typeof(_MyType1)); properties.Should().HaveCount(2); properties[nameof(_MyType1.IntProperty)].Should().NotBeNull(); properties[nameof(_MyType1.DoubleProperty)].Should().NotBeNull(); }
public void GetProperties_Inheritance_3() { var properties = TypeConverterHelper.GetProperties(typeof(_MyType3)); properties.Should().HaveCount(4); properties[nameof(_MyType1.IntProperty)].Should().NotBeNull(); properties[nameof(_MyType1.DoubleProperty)].Should().NotBeNull(); properties[nameof(_MyType2.StringProperty)].Should().NotBeNull(); properties[nameof(_MyType3.DateTimeProperty)].Should().NotBeNull(); }
public void GetProperties_InternalConverter_Should_Be_Cached() { TypeConverterHelper.GetProperties(typeof(_MyType1))[nameof(_MyType1.IntProperty)] .InternalConverter .Should() .BeSameAs( TypeConverterHelper.GetProperties(typeof(_MyType1))[nameof(_MyType1.IntProperty)] .InternalConverter ); }