コード例 #1
0
        public void NullNullablesToDefaultPrimitives()
        {
            var source = new NullableBuiltInTypes();
            var target = new BuiltInTypes()
            {
                Boolean = true,
                Byte    = 0x1,
                Char    = (char)2,
                Decimal = 3,
                Double  = 4.0,
                Int16   = 5,
                Int32   = 6,
                Int64   = 7,
                SByte   = 0x9,
                Single  = 10f,
                String  = "11",
                UInt16  = 12,
                UInt32  = 13,
                UInt64  = 14,
            };

            //each property must be set to null
            Assert.IsTrue(source.GetType().GetProperties()
                          .All(p => p.GetValue(source) == null));

            //each property must be set to a non-default value
            Assert.IsTrue(target.GetType().GetProperties()
                          .All(p =>
            {
                object defaultValue = p.PropertyType.GetDefaultValueViaActivator();
                return(!p.GetValue(target).Equals(defaultValue));
            }));

            var ultraMapper = new Mapper();

            ultraMapper.Map(source, target);

            var isResultOk = ultraMapper.VerifyMapperResult(source, target);

            Assert.IsTrue(isResultOk);
        }