コード例 #1
0
        public static void Cast(object value, SqlTypeCode destTypeCode, int p, int s, object expected)
        {
            var srcType  = SqlTypeUtil.FromValue(value);
            var destType = PrimitiveTypes.Type(destTypeCode, new { precision = p, scale = s, maxSize = p, size = p });

            Cast(srcType, value, destType, expected);
        }
コード例 #2
0
        public static void SerializeExplicit(int value)
        {
            var type   = PrimitiveTypes.Array(value);
            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #3
0
        public static void SerializeExplicit(SqlTypeCode typeCode, int precision, int scale)
        {
            var type   = new SqlNumericType(typeCode, precision, scale);
            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #4
0
        public static void SerializeExplicit()
        {
            var type   = new SqlDayToSecondType();
            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #5
0
        public static void CastToBinary(object value, SqlTypeCode typeCode, int size)
        {
            var type     = SqlTypeUtil.FromValue(value);
            var destType = PrimitiveTypes.Binary(typeCode, size);

            Assert.NotNull(type);
            Assert.IsType <SqlNumericType>(type);

            var number = (SqlNumber)SqlValueUtil.FromObject(value);

            Assert.True(type.CanCastTo(number, destType));
            var result = type.Cast(number, destType);

            Assert.IsAssignableFrom <ISqlBinary>(result);

            var binary = (ISqlBinary)result;

            var memStream = new MemoryStream();

            binary.GetInput().CopyTo(memStream);

            var bytes = memStream.ToArray();

            Assert.NotEmpty(bytes);

            var back = new SqlNumber(bytes);

            Assert.Equal(number, back);
        }
コード例 #6
0
        public static void SerializeExplicit(SqlTypeCode typeCode)
        {
            var type   = new SqlDateTimeType(typeCode);
            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #7
0
        public static void SerializeExplicit()
        {
            var type = PrimitiveTypes.YearToMonth();

            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #8
0
        public void SerializeExplicit(SqlTypeCode typeCode)
        {
            var type = new SqlBooleanType(typeCode);

            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #9
0
        public static void SerializeExplicit(SqlTypeCode typeCode, int maxSize, string locale)
        {
            var culture = String.IsNullOrEmpty(locale) ? null : new CultureInfo(locale);
            var type    = new SqlCharacterType(typeCode, maxSize, culture);

            var result = SqlTypeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #10
0
        private static SqlObject FromObject(object value)
        {
            if (value == null)
            {
                return(SqlObject.Null);
            }

            if (value is SqlTypeCode &&
                (SqlTypeCode)value == SqlTypeCode.Unknown)
            {
                return(SqlObject.Unknown);
            }

            var sqlValue = SqlValueUtil.FromObject(value);
            var sqlType  = SqlTypeUtil.FromValue(value);

            return(new SqlObject(sqlType, sqlValue));
        }
コード例 #11
0
 public static void Unary(Func <SqlType, Func <ISqlValue, ISqlValue> > selector, object value,
                          object expected)
 {
     Unary(SqlTypeUtil.FromValue(value), selector, value, expected);
 }