public void GetObjectProperties_DataMatchesMultipleEqualPropertyInfos_ReturnNull() { // Setup var propertyInfos = new PropertyInfo[] { new PropertyInfo <A, PropertiesForA>(), new PropertyInfo <A, AlternativePropertiesForA>() }; var resolver = new PropertyResolver(propertyInfos); var source = new InheritsFromA(); // Call object result = resolver.GetObjectProperties(source); // Assert Assert.IsNull(result); }
public void GetObjectProperties_DataMatchesPropertyInfoDataTypeBase_ReturnMatchedObjectProperties() { // Setup var propertyInfos = new PropertyInfo[] { new PropertyInfo <A, PropertiesForA>() }; var resolver = new PropertyResolver(propertyInfos); var source = new InheritsFromA(); // Call object result = resolver.GetObjectProperties(source); // Assert Assert.IsInstanceOf <DynamicPropertyBag>(result); Assert.IsInstanceOf <PropertiesForA>(((DynamicPropertyBag)result).WrappedObject); Assert.AreSame(source, ((IObjectProperties)((DynamicPropertyBag)result).WrappedObject).Data); }
public void GetObjectProperties_DataMatchesMultiplePropertyInfoByDataTypeInheritance_PrioritizeMostSpecialized() { // Setup var propertyInfos = new PropertyInfo[] { new PropertyInfo <A, PropertiesForA>(), new PropertyInfo <InheritsFromA, AlternativePropertiesForA>() }; var resolver = new PropertyResolver(propertyInfos); var source = new InheritsFromA(); // Call object result = resolver.GetObjectProperties(source); // Assert Assert.IsInstanceOf <DynamicPropertyBag>(result); Assert.IsInstanceOf <AlternativePropertiesForA>(((DynamicPropertyBag)result).WrappedObject); Assert.AreSame(source, ((IObjectProperties)((DynamicPropertyBag)result).WrappedObject).Data); }