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); } } } }
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); } } }