Beispiel #1
0
        public void ObjectMapper_Map_CollectionElementCreateMode_CollectionPropertyCreateMode_None()
        {
            var mapper = new ObjectMapper();

            mapper.CompilerConfig.CollectionPropertyCreateMode = CollectionPropertyCreateMode.None;

            var u1 = new User();

            for (int i = 0; i < 3; i++)
            {
                u1.Users.Add(new User("TestUser" + i.ToString()));
            }
            var u2 = mapper.Map(u1, new User());

            mapper.AddPostAction <User, User>((source, target) =>
            {
                if (source == null)
                {
                    return;
                }
                target.Users.AddRange(source.Users);
            });
            var u3 = mapper.Map(u1, new User());

            Assert.AreEqual(0, u2.Users.Count);
            Assert.AreEqual(3, u3.Users.Count);
        }
Beispiel #2
0
        public void ObjectMapper_CustomPropertyMappingRule_AddPostAction()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, User>((source, target) =>
            {
                target.MapPoint = MapPointConverter(source.Value) ?? target.MapPoint;
            });
            mapper.CompilerConfig.PropertyMatchRule = (c1, p1, c2, p2) =>
            {
                if (c1 == typeof(User) && c2 == typeof(User))
                {
                    return(p1.Name == "Value" && p2.Name == "MapPoint");
                }
                return(false);
            };

            var u1 = new User();

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

            Assert.AreEqual(23m, u2.MapPoint.Latitude);
            Assert.AreEqual(45m, u2.MapPoint.Longitude);
        }
Beispiel #3
0
        public void ObjectMapper_AddPostAction_IUser()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, IUser>((source, target) =>
            {
                //Do nothing...
            });
            var u1 = new User();
            var u2 = mapper.Map(u1, new User());

            Assert.AreEqual(u1.Name, u2.Name);
        }
Beispiel #4
0
        public void ObjectMapper_AddPostAction_EnumNullable()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, User>((source, target) =>
            {
                target.DayOfWeekNullable = DayOfWeekConverter(source.Value);
            });
            var u1 = new User();

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

            Assert.AreEqual(DayOfWeek.Friday, u2.DayOfWeekNullable);
        }
Beispiel #5
0
        public void ObjectMapper_Map_Flatten()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, UserFlatten>((source, target) =>
            {
                mapper.Map(source.Vector2, target);
                mapper.Map(source.MapPoint, target);
            });
            var u1 = new User();
            var u2 = mapper.Map(u1, new UserFlatten());

            Assert.AreEqual(u1.MapPoint.Latitude, u2.Latitude);
            Assert.AreEqual(u1.MapPoint.Longitude, u2.Longitude);
            Assert.AreEqual(u1.Vector2.X, u2.X);
        }
Beispiel #6
0
        public void ObjectMapper_AddPostAction_Collection()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, 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 = mapper.Map(u1, new User());

            Assert.AreEqual(u1.Tags[0], u2.Tags[0]);
            Assert.AreEqual(u1.Tags[1], u2.Tags[1]);
        }
Beispiel #7
0
        public void ObjectMapper_AddPostAction_Encoding()
        {
            var mapper = new ObjectMapper();

            mapper.AddPostAction <User, TextParser>((source, target) =>
            {
                if (source.Value == "U8")
                {
                    target.Encoding = Encoding.UTF8;
                }
            });
            var u1 = new User();

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

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

            Assert.AreEqual(Encoding.UTF8, p2.Encoding);
        }