Example #1
0
        public void Map_EnumerableWithDerivedWithSimple_Succeeds()
        {
            //Arrange
            var map = MapBuilder.Instance.CreateMap<MainEntity, MainEntityModel>().Map;
            var map2 = MapBuilder.Instance.CreateMap<DerivedMainEntity, DerivedMainEntityModel>().Map;
            var mainEntity = CommonHelper.CreateMainEntityWithSimpleProperties();
            var derivedMainEntity = CommonHelper.CreateDerivedMainEntityWithSimpleProperties();

            var entities = new MainEntity[]
            {
                mainEntity,
                derivedMainEntity
            };

            var context = new MapperTesting.CustomMappingContext
            {
                Data = "data1"
            };

            Mapper<MapperTesting.MapperTester>.Instance.AddMap(map);
            Mapper<MapperTesting.MapperTester>.Instance.AddMap(map2);
            Mapper<MapperTesting.MapperTester>.Instance.Setup();

            //Act
            var array = ActEnumerableMapping(entities, context);

            //Assert
            for (int i = 0; i < array.Length; i++)
            {
                var enumerable = array[i];

                foreach (MainEntityModel current in enumerable)
                {
                    if (current is DerivedMainEntityModel)
                    {
                        AssertEntityModel(derivedMainEntity, current);
                    }
                    else
                    {
                        AssertEntityModel(mainEntity, current);
                    }
                }
            }
        }
Example #2
0
        public void Map_EnumerableWithDerivedWithMappers_Succeeds()
        {
            //Arrange
            var typeMap = MapBuilder.Instance.CreateMap<MainEntity, MainEntityModel>().As(
                delegate(MainEntity source, MainEntityModel dest, TypeMappingContext ctxt)
                {
                    dest.Simple = source.Simple;
                    dest.SimpleConverter = source.SimpleConverter.ToString();
                });

            var typeMap2 = MapBuilder.Instance.CreateMap<DerivedMainEntity, DerivedMainEntityModel>().As(
                delegate(DerivedMainEntity source, DerivedMainEntityModel dest, TypeMappingContext ctxt)
                {
                    dest.Simple = source.Simple;
                    dest.SimpleConverter = source.SimpleConverter.ToString();
                    dest.DerivedSimple = source.DerivedSimple;
                });

            var mainEntity = CommonHelper.CreateMainEntityWithSimpleProperties();

            var derivedMainEntity = CommonHelper.CreateDerivedMainEntityWithSimpleProperties();

            var entities = new MainEntity[]
            {
                mainEntity,
                derivedMainEntity
            };

            var context = new MapperTesting.CustomMappingContext
            {
                Data = "data1"
            };

            Mapper<MapperTesting.MapperTester>.Instance.AddMap(typeMap);
            Mapper<MapperTesting.MapperTester>.Instance.AddMap(typeMap2);

            Mapper<MapperTesting.MapperTester>.Instance.Setup();

            //Act
            var array = ActEnumerableMapping(entities, context);

            //Assert
            for (int i = 0; i < array.Length; i++)
            {
                var enumerable = array[i];

                foreach (MainEntityModel current in enumerable)
                {
                    if (current is DerivedMainEntityModel)
                    {
                        Assert.AreEqual<int>(derivedMainEntity.Simple, current.Simple);
                        Assert.AreEqual<string>(derivedMainEntity.SimpleConverter.ToString(), current.SimpleConverter);
                        Assert.AreEqual<int>(derivedMainEntity.DerivedSimple, ((DerivedMainEntityModel)current).DerivedSimple);
                    }
                    else
                    {
                        Assert.AreEqual<int>(mainEntity.Simple, current.Simple);
                        Assert.AreEqual<string>(mainEntity.SimpleConverter.ToString(), current.SimpleConverter);
                    }
                }
            }
        }
        public void Unmap_EnumerableWithSimple_Succeeds()
        {
            //Arrange
            var map = MapBuilder.Instance.CreateReversiveMap<MainEntity, MainEntityModel>().Map;

            var mainEntity = CommonHelper.CreateMainEntityWithSimpleProperties();

            var entities = new MainEntity[]
            {
                mainEntity,
                mainEntity
            };

            var context = new MapperTesting.CustomMappingContext
            {
                Data = "data1"
            };

            Mapper<MapperTesting.MapperTester>.Instance.AddMap(map);

            Mapper<MapperTesting.MapperTester>.Instance.Setup();

            //Act
            var array = ActEnumerableUnmapping(entities, context);

            //Assert
            for (int i = 0; i < array.Length; i++)
            {
                foreach (MainEntity current in array[i])
                {
                    AssertEntity(mainEntity, current);
                }
            }
        }
        public void Unmap_ThirdToSecondLevelFlattening_Succeeds()
        {
            //Arrange
            var array = new ReversiveTypeMap[]
            {
                MapBuilder.Instance.CreateReversiveMap<SubSubEntity, SubFlattenedThirdToSecondLevelModel>().Map
            };

            var array2 = new ReversiveTypeMap[]
            {
                MapBuilder.Instance.CreateReversiveMap<SubEntity, SubFlattenedThirdToSecondLevelModel>()
                .MapProperty((SubEntity p) => p.SubSubEntity, null, array).Map
            };

            var map = MapBuilder.Instance.CreateReversiveMap<MainEntity, FlattenedThirdToSecondLevelModel>()
                .MapProperty((MainEntity p) => p.SubEntity, (FlattenedThirdToSecondLevelModel p) => p.SubEntityModel, array2).Map;

            var mainEntity = CommonHelper.CreateMainEntityWithSimpleProperties();
            mainEntity.SubEntity = CommonHelper.CreateEntityWithSimpleProperties<SubEntity>();
            mainEntity.SubEntity.SubSubEntity = CommonHelper.CreateEntityWithSimpleProperties<SubSubEntity>();

            var customMappingContext = new MapperTesting.CustomMappingContext
            {
                Data = "data1"
            };

            Mapper<MapperTesting.MapperTester>.Instance.AddMap(map);
            Mapper<MapperTesting.MapperTester>.Instance.Setup();

            //Act
            var mainEntity2 = Mapper<MapperTesting.MapperTester>.Instance
                .Unmap<MainEntity>(Mapper<MapperTesting.MapperTester>.Instance
                .Map<FlattenedThirdToSecondLevelModel>(mainEntity, customMappingContext), customMappingContext);
            var mainEntity3 = Mapper<MapperTesting.MapperTester>.Instance
                .Unmap<MainEntity>(Mapper<MapperTesting.MapperTester>.Instance
                .Map<FlattenedThirdToSecondLevelModel>(mainEntity, new FlattenedThirdToSecondLevelModel(),
                customMappingContext), new MainEntity(), customMappingContext);
            var mainEntity4 = Mapper<MapperTesting.MapperTester>.Instance
                .Unmap(Mapper<MapperTesting.MapperTester>.Instance
                .Map(mainEntity, typeof(FlattenedThirdToSecondLevelModel),
                customMappingContext), typeof(MainEntity), customMappingContext) as MainEntity;

            //Assert
            var array3 = new MainEntity[]
            {
                mainEntity2,
                mainEntity3,
                mainEntity4
            };

            for (int i = 0; i < array3.Length; i++)
            {
                AssertEntity(mainEntity.SubEntity.SubSubEntity, array3[i].SubEntity.SubSubEntity);
            }
        }
        public void Unmap_EnumerableWithMapper_Succeeds()
        {
            //Arrange
            var reversiveTypeMap = MapBuilder.Instance.CreateReversiveMap<MainEntity, MainEntityModel>()
                .As(delegate(MainEntity source, MainEntityModel dest, TypeMappingContext ctxt)
            {
                dest.Simple = source.Simple;
                dest.SimpleConverter = source.SimpleConverter.ToString();
            }, delegate(MainEntityModel dest, MainEntity source, TypeMappingContext ctxt)
            {
                source.Simple = dest.Simple;
                source.SimpleConverter = int.Parse(dest.SimpleConverter);
            });

            var mainEntity = CommonHelper.CreateMainEntityWithSimpleProperties();

            var entities = new MainEntity[]
            {
                mainEntity,
                mainEntity
            };

            var context = new MapperTesting.CustomMappingContext
            {
                Data = "data1"
            };

            Mapper<MapperTesting.MapperTester>.Instance.AddMap(reversiveTypeMap);
            Mapper<MapperTesting.MapperTester>.Instance.Setup();

            //Act
            var array = ActEnumerableUnmapping(entities, context);

            //Assert
            for (int i = 0; i < array.Length; i++)
            {
                foreach (MainEntity current in array[i])
                {
                    Assert.AreEqual<int>(mainEntity.Simple, current.Simple);
                    Assert.AreEqual<int>(mainEntity.SimpleConverter, current.SimpleConverter);
                }
            }
        }