コード例 #1
0
        public static void Serialize(SqlTypeCode typeCode)
        {
            var type   = new SqlDateTimeType(typeCode);
            var result = BinarySerializeUtil.Serialize(type);

            Assert.Equal(type, result);
        }
コード例 #2
0
        public static void GetString(SqlTypeCode typeCode, string expected)
        {
            var type = new SqlDateTimeType(typeCode);

            var s = type.ToString();

            Assert.Equal(expected, s);
        }
コード例 #3
0
        public static void GetValidDateTimeType(SqlTypeCode typeCode)
        {
            var type = new SqlDateTimeType(typeCode);

            Assert.Equal(typeCode, type.TypeCode);
            Assert.True(type.IsIndexable);
            Assert.True(type.IsPrimitive);
            Assert.False(type.IsLargeObject);
            Assert.False(type.IsReference);
        }
コード例 #4
0
        private static void BinaryWithInterval(Func <SqlDateTimeType, Func <ISqlValue, ISqlValue, ISqlValue> > selector, string date, int months, string expected)
        {
            var type    = new SqlDateTimeType(SqlTypeCode.DateTime);
            var sqlDate = SqlDateTime.Parse(date);
            var ytm     = new SqlYearToMonth(months);

            var op     = selector(type);
            var result = op(sqlDate, ytm);

            var expectedResult = SqlDateTime.Parse(expected);

            Assert.Equal(expectedResult, result);
        }
コード例 #5
0
        private static void BinaryWithInterval(Func <SqlDateTimeType, Func <ISqlValue, ISqlValue, ISqlValue> > selector, string date, string offset, string expected)
        {
            var type    = new SqlDateTimeType(SqlTypeCode.DateTime);
            var sqlDate = SqlDateTime.Parse(date);
            var dts     = SqlDayToSecond.Parse(offset);

            var op     = selector(type);
            var result = op(sqlDate, dts);

            var expectedResult = SqlDateTime.Parse(expected);

            Assert.Equal(expectedResult, result);
        }
コード例 #6
0
        private static void Binary(Func <SqlDateTimeType, Func <ISqlValue, ISqlValue, SqlBoolean> > selector, string date1, string date2, bool expected)
        {
            var type     = new SqlDateTimeType(SqlTypeCode.DateTime);
            var sqlDate1 = SqlDateTime.Parse(date1);
            var sqlDate2 = SqlDateTime.Parse(date2);

            var op     = selector(type);
            var result = op(sqlDate1, sqlDate2);

            var expectedResult = (SqlBoolean)expected;

            Assert.Equal(expectedResult, result);
        }
コード例 #7
0
        public static void CastToString(string s, SqlTypeCode typeCode, SqlTypeCode destTypeCode, int maxSize, string expected)
        {
            var date = SqlDateTime.Parse(s);
            var type = new SqlDateTimeType(typeCode);

            var destType = new SqlCharacterType(destTypeCode, maxSize, null);

            Assert.True(type.CanCastTo(date, destType));

            var result = type.Cast(date, destType);

            Assert.NotNull(result);
            Assert.IsType <SqlString>(result);

            Assert.Equal(expected, (SqlString)result);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        public static void CastToDateTime(string s, SqlTypeCode destTypeCode, string expected)
        {
            var date = SqlDateTime.Parse(s);
            var type = new SqlDateTimeType(SqlTypeCode.DateTime);

            var destType = new SqlDateTimeType(destTypeCode);

            Assert.True(type.CanCastTo(date, destType));

            var result = type.Cast(date, destType);

            Assert.NotNull(result);
            Assert.IsType <SqlDateTime>(result);

            var expectedResult = SqlDateTime.Parse(expected);

            Assert.Equal(expectedResult, result);
        }
コード例 #10
0
        public static void CastToNumber(string s, SqlTypeCode typeCode, int precision, int scale)
        {
            var date     = SqlDateTime.Parse(s);
            var type     = new SqlDateTimeType(SqlTypeCode.DateTime);
            var destType = new SqlNumericType(typeCode, precision, scale);

            Assert.True(type.CanCastTo(date, destType));

            var result = type.Cast(date, destType);

            Assert.NotNull(result);
            Assert.IsType <SqlNumber>(result);

            var value = (SqlNumber)result;

            var back = new SqlDateTime((long)value);

            Assert.Equal(date, back);
        }
コード例 #11
0
 private ISqlValue ToDateTime(SqlDateTime date, SqlDateTimeType destType)
 {
     return(destType.NormalizeValue(date));
 }