示例#1
0
        public void SingleObjectTest()
        {
            MapFactory.ResetAllMaps();
            var target = new InnType {
                DateTimeValue = DateTime.Now, DesimalValue = (decimal)100.212, StringValue = "test", MyEnum = Mock.MyEnum.something
            };
            var map = MapFactory.CreateEmptyMapRule <InnType, OutType>();

            map.AddMap <InnType, OutType>(new Dictionary <string, string>
            {
                { "DateTimeValue", "DateTimeValue1" },
                { "DesimalValue", "DesimalValue1" },
                { "StringValue", "StringValue1" }
            });
            map.GetRule <InnType, OutType>().Add(r => r.MyEnum, r => r.MyEnumName).Add(r => r.MyEnum, r => r.MyEnumVal);

            var result = target.Map().To <OutType>(map);

            Assert.IsNotNull(result);
            Assert.AreEqual(target.DateTimeValue.ToString("g"), result.DateTimeValue1);
            Assert.AreEqual(target.DesimalValue, result.DesimalValue1);
            Assert.AreEqual(target.StringValue, result.StringValue1);
            Assert.AreEqual("something", result.MyEnumName);
            Assert.AreEqual(2, result.MyEnumVal);
        }
示例#2
0
        public void MergeDataWithSameBaseType()
        {
            MapFactory.CreateMapRule <InnType, InnType>(true).GetRule().RemoveMapping("MyInts").RemoveMapping("DesimalValue");
            var inValue = new InnType
            {
                DateTimeValue = DateTime.Now,
                MyInts        = new List <int>(),
                StringValue   = "Updated string",
                DesimalValue  = 100
            };
            var targetValue = new InnType
            {
                DateTimeValue = DateTime.Now.AddYears(-1),
                MyInts        = new List <int>(),
                StringValue   = "original string",
                DesimalValue  = 0
            };
            var newTarget = inValue.Map().To(targetValue);

            Assert.AreNotSame(inValue, newTarget);
            Assert.AreEqual(inValue.StringValue, newTarget.StringValue);
            Assert.AreEqual(inValue.DateTimeValue, newTarget.DateTimeValue);
            Assert.AreNotEqual(inValue.DesimalValue, newTarget.DesimalValue);
        }