Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }