예제 #1
0
        public void TestUInt16ToSByteOrDefault()
        {
            // Test conversion of source type minimum value
            UInt16 source = UInt16.MinValue;

            Assert.IsInstanceOfType(source, typeof(UInt16));
            SByte?result = source.ToSByteOrDefault((sbyte)86);

            Assert.AreEqual((sbyte)0, result);
            Assert.IsInstanceOfType(result, typeof(SByte));
            // Test conversion of source type value 42 to target type
            source = (ushort)42;
            Assert.IsInstanceOfType(source, typeof(UInt16));
            result = source.ToSByteOrDefault((sbyte)86);
            Assert.AreEqual((sbyte)42, result);
            Assert.IsInstanceOfType(result, typeof(SByte));

            // Test conversion of source type maximum value
            source = UInt16.MaxValue;
            Assert.IsInstanceOfType(source, typeof(UInt16));
            result = source.ToSByteOrDefault((sbyte)86);
            // Here we would expect this conversion to fail (and return the default value of (sbyte)86),
            // since the source type's maximum value (65535) is greater than the target type's maximum value (127).
            Assert.AreEqual((sbyte)86, result);
            Assert.IsInstanceOfType(result, typeof(SByte));
        }