public void ObjectMapConfig_CustomPropertyMappingRule()
        {
            var config = new ObjectMapConfig();

            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Value", "Int32");
            rule.AddPropertyNameMap("Value", "DateTime");
            rule.AddPropertyNameMap("Value", "Decimal");
            rule.AddPropertyNameMap("Value", "DayOfWeek");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();
            {
                u1.Value = "23";
                var u2 = config.Map(u1, new User());
                Assert.AreEqual(23, u2.Int32);
            }
            {
                u1.Value = "2014/12/17 00:00:00";
                var u2 = config.Map(u1, new User());
                Assert.AreEqual(new DateTime(2014, 12, 17), u2.DateTime);
            }
            {
                u1.Value = "23.4";
                var u2 = config.Map(u1, new User());
                Assert.AreEqual(23.4m, u2.Decimal);
            }
            {
                u1.Value = "Friday";
                var u2 = config.Map(u1, new User());
                Assert.AreEqual(DayOfWeek.Friday, u2.DayOfWeek);
            }
        }
        public void ObjectMapConfig_AddPostAction_Encoding()
        {
            var config = new ObjectMapConfig();

            config.AddPostAction <String, Encoding>((source, target) =>
            {
                if (source == "U8")
                {
                    return(Encoding.UTF8);
                }
                return(null);
            });

            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Value", "Encoding");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "U8";
            var p2 = new TextParser();

            p2.Encoding = null;
            config.Map(u1, p2);

            Assert.AreEqual(Encoding.UTF8, p2.Encoding);
        }
        public void ObjectMapConfig_Map_FromDecimalToInt32()
        {
            var config = new ObjectMapConfig();

            config.PropertyMapRules.Clear();

            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Int32", "Decimal");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Int32 = 23;
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(23m, u2.Decimal);
        }
        public void ObjectMapConfig_PropertyNameMappingRule_Failure()
        {
            var config = new ObjectMapConfig();

            config.PropertyMapRules.Clear();

            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Value", "Decimal");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "abc";
            var u2 = config.Map(u1, new User());

            //Not changed...
            Assert.AreEqual(20.4m, u2.Decimal);
        }
Пример #5
0
        public void ObjectMapConfig_CustomStructConverter()
        {
            var config = new ObjectMapConfig();

            config.AddConverter(DayOfWeekConverter);

            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.PropertyNameMaps.Add("Value", "DayOfWeek");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "Friday";
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(DayOfWeek.Friday, u2.DayOfWeek);
        }
Пример #6
0
        public void ObjectMapConfig_CustomClassConverter()
        {
            var config = new ObjectMapConfig();

            config.AddConverter <MapPoint>(MapPointConverter);

            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.PropertyNameMaps.Add("Value", "MapPoint");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "23, 45";
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(23m, u2.MapPoint.Latitude);
            Assert.AreEqual(45m, u2.MapPoint.Longitude);
        }
        public void ObjectMapConfig_Map_List_NullableList()
        {
            var config = new ObjectMapConfig();

            config.PropertyMapRules.Clear();

            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Vectors", "NullableVectors");
            config.PropertyMapRules.Add(rule);

            var l1 = new VectorList();

            l1.Vectors.Add(new Vector2()
            {
                X = 1, Y = 2
            });
            var l2 = config.Map(l1, new VectorList());

            Assert.AreEqual(1, l2.NullableVectors[0].Value.X);
        }
        public void ObjectMapConfig_CustomPropertyMappingRule_AddPostAction()
        {
            var config = new ObjectMapConfig();

            config.AddPostAction <User>((source, target) =>
            {
                target.MapPoint = MapPointConverter(source.Value) ?? target.MapPoint;
            });
            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Value", "MapPoint");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "23, 45";
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(23m, u2.MapPoint.Latitude);
            Assert.AreEqual(45m, u2.MapPoint.Longitude);
        }
        public void ObjectMapConfig_AddPostAction_String_DayOfWeek()
        {
            var config = new ObjectMapConfig();

            config.AddPostAction <String, DayOfWeek>((source, target) =>
            {
                return(DayOfWeekConverter(source) ?? target);
            });

            config.PropertyMapRules.Clear();
            var rule = new PropertyNameMappingRule();

            rule.AddPropertyNameMap("Value", "DayOfWeek");
            config.PropertyMapRules.Add(rule);

            var u1 = new User();

            u1.Value = "Fri";
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(DayOfWeek.Friday, u2.DayOfWeek);
        }