Binary() public static method

public static Binary ( ) : BinaryType
return BinaryType
Esempio n. 1
0
        public static void FailConvertToBoolean(byte[] data)
        {
            var type   = PrimitiveTypes.Binary();
            var binary = new SqlBinary(data);

            Assert.Throws <InvalidCastException>(() => type.CastTo(binary, PrimitiveTypes.Boolean()));
        }
        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);
        }
        public void CastToBinary(bool value, byte expected)
        {
            var type    = PrimitiveTypes.Boolean();
            var boolean = new SqlBoolean(value);

            var casted = type.CastTo(boolean, PrimitiveTypes.Binary());

            var expectedArray = new[] { expected };

            Assert.IsInstanceOf <SqlBinary>(casted);
            Assert.AreEqual(expectedArray, ((SqlBinary)casted).ToByteArray());
        }
Esempio n. 4
0
        public static void ConvertToBoolean(byte[] data, bool?expectedResult)
        {
            var type   = PrimitiveTypes.Binary();
            var binary = new SqlBinary(data);

            var result = type.CastTo(binary, PrimitiveTypes.Boolean());

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <SqlBoolean>(result);

            var boolean = (SqlBoolean)result;

            Assert.AreEqual(expectedResult, (bool?)boolean);
        }
Esempio n. 5
0
        public static SqlType Deserialize(BinaryReader reader, ITypeResolver resolver)
        {
            var typeCode = (SqlTypeCode)reader.ReadByte();

            if (BooleanType.IsBooleanType(typeCode))
            {
                return(PrimitiveTypes.Boolean(typeCode));
            }
            if (IntervalType.IsIntervalType(typeCode))
            {
                return(PrimitiveTypes.Interval(typeCode));
            }
            if (DateType.IsDateType(typeCode))
            {
                return(PrimitiveTypes.DateTime(typeCode));
            }

            if (StringType.IsStringType(typeCode))
            {
                var maxSize = reader.ReadInt32();

                CultureInfo locale    = null;
                var         hasLocale = reader.ReadByte() == 1;
                if (hasLocale)
                {
                    var name = reader.ReadString();
                    locale = new CultureInfo(name);
                }

                // TODO: Get the encoding from the serialization...
                return(PrimitiveTypes.String(typeCode, maxSize, Encoding.Unicode, locale));
            }

            if (NumericType.IsNumericType(typeCode))
            {
                var size  = reader.ReadInt32();
                var scale = reader.ReadInt32();

                return(PrimitiveTypes.Numeric(typeCode, size, scale));
            }

            if (BinaryType.IsBinaryType(typeCode))
            {
                var size = reader.ReadInt32();
                return(PrimitiveTypes.Binary(typeCode, size));
            }

            if (typeCode == SqlTypeCode.Type)
            {
                // TODO:
            }

            if (typeCode == SqlTypeCode.QueryPlan)
            {
                return(new QueryType());
            }

            if (typeCode == SqlTypeCode.Array)
            {
                var size = reader.ReadInt32();
                return(new ArrayType(size));
            }

            if (typeCode == SqlTypeCode.Null)
            {
                return(PrimitiveTypes.Null());
            }

            throw new NotSupportedException();
        }