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); }