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

            config.AddPostAction <User>((source, target) =>
            {
                target.Tags = source.Tags.ToArray();
            });

            var u1 = new User();

            u1.Tags    = new String[2];
            u1.Tags[0] = "News";
            u1.Tags[1] = "Sports";
            var u2 = config.Map(u1, new User());

            Assert.AreEqual(u1.Tags[0], u2.Tags[0]);
            Assert.AreEqual(u1.Tags[1], u2.Tags[1]);
        }
        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);
        }