Ejemplo n.º 1
0
        public void CollectionUpdateInheritance()
        {
            var source = new ReadOnlyCollection <TestClass>(new TestClass[]
            {
                new TestClass()
                {
                    String = "A"
                },
                new TestClass()
                {
                    String = "B"
                }
            }
                                                            );

            var target = new ObservableCollection <TestClass>();

            var ultraMapper = new Mapper(cfg =>
            {
                cfg.MapTypes <IEnumerable <TestClass>, IEnumerable <TestClass>, TestClass, TestClass>((s, t) => s.String == t.String);
            });

            ultraMapper.Map(source, target);

            var userDefinedTypePair = new Internals.TypePair(typeof(IEnumerable <TestClass>), typeof(IEnumerable <TestClass>));
            var userDefinedMap      = ultraMapper.MappingConfiguration[userDefinedTypePair];

            var inheritedTypePair    = new Internals.TypePair(typeof(ReadOnlyCollection <TestClass>), typeof(ObservableCollection <TestClass>));
            var conventionDefinedMap = ultraMapper.MappingConfiguration[inheritedTypePair];

            var conventionDefinedMapOptionCrawler = new TypeMappingOptionsInheritanceTraversal(conventionDefinedMap);

            Assert.IsTrue(userDefinedMap.CollectionBehavior == conventionDefinedMapOptionCrawler.CollectionBehavior);
            Assert.IsTrue(userDefinedMap.CollectionItemEqualityComparer == conventionDefinedMapOptionCrawler.CollectionItemEqualityComparer);
            Assert.IsTrue(userDefinedMap.ReferenceBehavior == conventionDefinedMapOptionCrawler.ReferenceBehavior);

            var isResultOk = ultraMapper.VerifyMapperResult(source, target);

            Assert.IsTrue(isResultOk);
        }
Ejemplo n.º 2
0
 public MemberMappingOptionsInheritanceTraversal(MemberMapping memberMapping)
 {
     this.MemberMapping            = memberMapping;
     this.MemberMappingTypeCrawler = new TypeMappingOptionsInheritanceTraversal(this.MemberMapping.MemberTypeMapping);
 }