コード例 #1
0
ファイル: TypeMapTesting.cs プロジェクト: hennadiilu/Nmap
        public void ReversiveTypeMap_GoodValues_Succeeds()
        {
            //Arrange
            //Act
            var reversiveTypeMap = new ReversiveTypeMap(typeof(string), typeof(int));

            //Assert
            Assert.AreEqual<Type>(typeof(string), reversiveTypeMap.SourceType);
            Assert.AreEqual<Type>(typeof(int), reversiveTypeMap.DestinationType);
        }
コード例 #2
0
ファイル: TypeMapTesting.cs プロジェクト: hennadiilu/Nmap
        public void PropertyMaps_Initially_IsEmpty()
        {
            //Arrange
            var reversiveTypeMap = new ReversiveTypeMap(typeof(string), typeof(int));

            //Act
            var propertyMaps = reversiveTypeMap.PropertyMaps;

            //Assert
            Assert.AreEqual<int>(0, propertyMaps.Count);
        }
コード例 #3
0
 public void Validate_IfTypeMapperOrTypeUnMapperIsNotDefined_OnlyUnMapper_ThrowsMapValidationException()
 {
     ReversiveTypeMap reversiveTypeMap = new ReversiveTypeMap(typeof(MainEntity), typeof(MainEntityModel));
     reversiveTypeMap.set_UnMapper(delegate(object source, object dest, TypeMappingContext context)
     {
     });
     TypeMapBase[] array = new TypeMapBase[]
     {
         reversiveTypeMap
     };
     new MapValidator().Validate(reversiveTypeMap, array);
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        public void Unmap_NestedWithPropertyMapsWithSimple_Succeeds()
        {
            //Arrange
            var array = new ReversiveTypeMap[]
            {
                MapBuilder.Instance.CreateReversiveMap<SubSubEntity, SubSubEntityModel>().Map
            };
            var array2 = new ReversiveTypeMap[]
            {
                MapBuilder.Instance.CreateReversiveMap<SubEntity, SubEntityModel>()
                .MapProperty((SubEntity p) => p.SubSubEntity, (SubEntityModel p) => p.SubSubEntity, array)
                .MapProperty((SubEntity p) => p.SubSubEntityArrayToArray,
                (SubEntityModel p) => p.SubSubEntityArrayToArray, array)
                .MapProperty((SubEntity p) => p.SubSubEntityArrayToList,
                (SubEntityModel p) => p.SubSubEntityArrayToList, array)
                .MapProperty((SubEntity p) => p.SubSubEntityListToArray,
                (SubEntityModel p) => p.SubSubEntityListToArray, array)
                .MapProperty((SubEntity p) => p.SubSubEntityListToList,
                (SubEntityModel p) => p.SubSubEntityListToList, array).Map
            };

            var map = MapBuilder.Instance.CreateReversiveMap<MainEntity, MainEntityModel>()
                .MapProperty((MainEntity p) => p.SubEntity, (MainEntityModel p) => p.SubEntity, array2)
                .MapProperty((MainEntity p) => p.SubEntityArrayToArray,
                (MainEntityModel p) => p.SubEntityArrayToArray, array2)
                .MapProperty((MainEntity p) => p.SubEntityArrayToList,
                (MainEntityModel p) => p.SubEntityArrayToList, array2)
                .MapProperty((MainEntity p) => p.SubEntityListToArray,
                (MainEntityModel p) => p.SubEntityListToArray, array2)
                .MapProperty((MainEntity p) => p.SubEntityListToList,
                (MainEntityModel p) => p.SubEntityListToList, array2).Map;

            var mainEntity = CommonHelper.CreateMainEntityWithAllProperties(false);

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

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

            //Act
            var result = ActUnmapping(mainEntity, context);

            //Assert
            for (int i = 0; i < result.Length; i++)
            {
                MainEntity actual = result[i];
                AssertEntity(mainEntity, actual);
            }
        }
コード例 #6
0
        public void Validate_IfTypeMapperOrTypeUnMapperIsNotDefined_OnlyUnMapper_ThrowsMapValidationException()
        {
            //Arrange
            var reversiveTypeMap = new ReversiveTypeMap(typeof(MainEntity), typeof(MainEntityModel));

            reversiveTypeMap.UnMapper = delegate(object source, object dest, TypeMappingContext context)
            {
            };

            var array = new TypeMapBase[]
            {
                reversiveTypeMap
            };

            //Act
            //Assert
            new MapValidator().Validate(reversiveTypeMap, array);
        }
コード例 #7
0
ファイル: Error.cs プロジェクト: hennadiilu/Nmap
 public static void MapValidationException_IfTypeMapperOrTypeUnMapperIsNotDefined(ReversiveTypeMap map)
 {
     if ((map.Mapper == null && map.UnMapper != null) || (map.Mapper != null && map.UnMapper == null))
     {
         throw new MapValidationException(string.Format(Resources.TypeMapperOrTypeUnMapperIsNotDefined1,
             (map != null) ? map.ToString() : string.Empty), null);
     }
 }