public static void CastToBoolean(byte singleByte, bool expected) { var type = new SqlBinaryType(SqlTypeCode.Binary); var value = new SqlBinary(new[] { singleByte }); Assert.True(type.CanCastTo(value, PrimitiveTypes.Bit())); var result = type.Cast(value, PrimitiveTypes.Bit()); Assert.NotNull(result); Assert.IsType <SqlBoolean>(result); Assert.Equal(expected, (bool?)((SqlBoolean)result)); }
public static void CastToDate(string s, SqlTypeCode typeCode) { var type = new SqlBinaryType(SqlTypeCode.Binary); var date = SqlDateTime.Parse(s); var destType = new SqlDateTimeType(typeCode); var bytes = date.ToByteArray(); var binary = new SqlBinary(bytes); Assert.True(type.CanCastTo(binary, destType)); var result = type.Cast(binary, destType); Assert.NotNull(result); Assert.IsType <SqlDateTime>(result); Assert.Equal(date, (SqlDateTime)result); }
public static void CastToString(string s, SqlTypeCode typeCode, int maxSize, string expected) { var type = new SqlBinaryType(SqlTypeCode.Binary); var input = (SqlString)s; var destType = new SqlCharacterType(typeCode, maxSize, null); var bytes = input.ToByteArray(); var binary = new SqlBinary(bytes); Assert.True(type.CanCastTo(binary, destType)); var result = type.Cast(binary, destType); Assert.NotNull(result); Assert.IsType <SqlString>(result); Assert.Equal(expected, (SqlString)result); }
public static void CastToNumber() { var type = new SqlBinaryType(SqlTypeCode.Binary); var value = new SqlBinary(new byte[] { 44, 95, 122, 0 }); Assert.True(type.CanCastTo(value, PrimitiveTypes.Numeric(22, 4))); var result = type.Cast(value, PrimitiveTypes.Numeric(22, 4)); Assert.NotNull(result); Assert.IsType <SqlNumber>(result); var number = (SqlNumber)result; Assert.NotNull(number); Assert.False(number.CanBeInt32); Assert.Equal(74445.4656, (double)number); }