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

            Assert.IsInstanceOfType(source, typeof(UInt16));
            Byte?result = source.ToByteOrDefault((byte)86);

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

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