Example #1
0
        /// <summary>
        /// Verifies the field types.
        /// </summary>
        private static void VerifyFieldTypes(IBinaryObject bin)
        {
            var binType = bin.GetBinaryType();

            Assert.AreEqual("byte", binType.GetFieldTypeName("byte"));
            Assert.AreEqual("byte", binType.GetFieldTypeName("sbyte"));

            Assert.AreEqual("byte[]", binType.GetFieldTypeName("bytes"));
            Assert.AreEqual("byte[]", binType.GetFieldTypeName("sbytes"));

            Assert.AreEqual("boolean", binType.GetFieldTypeName("bool"));
            Assert.AreEqual("boolean[]", binType.GetFieldTypeName("bools"));

            Assert.AreEqual("char", binType.GetFieldTypeName("char"));
            Assert.AreEqual("char[]", binType.GetFieldTypeName("chars"));

            Assert.AreEqual("short", binType.GetFieldTypeName("short"));
            Assert.AreEqual("short[]", binType.GetFieldTypeName("shorts"));

            Assert.AreEqual("short", binType.GetFieldTypeName("ushort"));
            Assert.AreEqual("short[]", binType.GetFieldTypeName("ushorts"));

            Assert.AreEqual("int", binType.GetFieldTypeName("int"));
            Assert.AreEqual("int[]", binType.GetFieldTypeName("ints"));

            Assert.AreEqual("int", binType.GetFieldTypeName("uint"));
            Assert.AreEqual("int[]", binType.GetFieldTypeName("uints"));

            Assert.AreEqual("long", binType.GetFieldTypeName("long"));
            Assert.AreEqual("long[]", binType.GetFieldTypeName("longs"));

            Assert.AreEqual("long", binType.GetFieldTypeName("ulong"));
            Assert.AreEqual("long[]", binType.GetFieldTypeName("ulongs"));

            Assert.AreEqual("float", binType.GetFieldTypeName("float"));
            Assert.AreEqual("float[]", binType.GetFieldTypeName("floats"));

            Assert.AreEqual("double", binType.GetFieldTypeName("double"));
            Assert.AreEqual("double[]", binType.GetFieldTypeName("doubles"));

            Assert.AreEqual("decimal", binType.GetFieldTypeName("decimal"));
            Assert.AreEqual("Object", binType.GetFieldTypeName("decimals"));

            Assert.AreEqual("UUID", binType.GetFieldTypeName("guid"));
            Assert.AreEqual("Object", binType.GetFieldTypeName("guids"));

            Assert.AreEqual("Object", binType.GetFieldTypeName("datetime"));
            Assert.AreEqual("Object", binType.GetFieldTypeName("datetimes"));

            Assert.AreEqual("Object", binType.GetFieldTypeName("intptr"));
            Assert.AreEqual("Object", binType.GetFieldTypeName("intptrs"));

            Assert.AreEqual("Object", binType.GetFieldTypeName("uintptr"));
            Assert.AreEqual("Object", binType.GetFieldTypeName("uintptrs"));
        }
Example #2
0
        /// <summary>
        /// Checks the string date guid enum values.
        /// </summary>
        private void CheckStringDateGuidEnum1(IBinaryObject binObj, DateTime? nDate, Guid? nGuid)
        {
            Assert.AreEqual(100, binObj.GetHashCode());

            IBinaryType meta = binObj.GetBinaryType();

            Assert.AreEqual(typeof(StringDateGuidEnum).Name, meta.TypeName);

            Assert.AreEqual(10, meta.Fields.Count);

            Assert.AreEqual(BinaryTypeNames.TypeNameString, meta.GetFieldTypeName("fStr"));
            Assert.AreEqual(BinaryTypeNames.TypeNameObject, meta.GetFieldTypeName("fNDate"));
            Assert.AreEqual(BinaryTypeNames.TypeNameTimestamp, meta.GetFieldTypeName("fNTimestamp"));
            Assert.AreEqual(BinaryTypeNames.TypeNameGuid, meta.GetFieldTypeName("fNGuid"));
            Assert.AreEqual(BinaryTypeNames.TypeNameEnum, meta.GetFieldTypeName("fEnum"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayString, meta.GetFieldTypeName("fStrArr"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayObject, meta.GetFieldTypeName("fDateArr"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayTimestamp, meta.GetFieldTypeName("fTimestampArr"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayGuid, meta.GetFieldTypeName("fGuidArr"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayEnum, meta.GetFieldTypeName("fEnumArr"));

            Assert.AreEqual("str", binObj.GetField<string>("fStr"));
            Assert.AreEqual(nDate, binObj.GetField<DateTime?>("fNDate"));
            Assert.AreEqual(nDate, binObj.GetField<DateTime?>("fNTimestamp"));
            Assert.AreEqual(nGuid, binObj.GetField<Guid?>("fNGuid"));
            Assert.AreEqual(TestEnum.One, binObj.GetField<TestEnum>("fEnum"));
            Assert.AreEqual(new[] {"str"}, binObj.GetField<string[]>("fStrArr"));
            Assert.AreEqual(new[] {nDate}, binObj.GetField<DateTime?[]>("fDateArr"));
            Assert.AreEqual(new[] {nDate}, binObj.GetField<DateTime?[]>("fTimestampArr"));
            Assert.AreEqual(new[] {nGuid}, binObj.GetField<Guid?[]>("fGuidArr"));
            Assert.AreEqual(new[] {TestEnum.One}, binObj.GetField<TestEnum[]>("fEnumArr"));

            StringDateGuidEnum obj = binObj.Deserialize<StringDateGuidEnum>();

            Assert.AreEqual("str", obj.FStr);
            Assert.AreEqual(nDate, obj.FnDate);
            Assert.AreEqual(nDate, obj.FnTimestamp);
            Assert.AreEqual(nGuid, obj.FnGuid);
            Assert.AreEqual(TestEnum.One, obj.FEnum);
            Assert.AreEqual(new[] {"str"}, obj.FStrArr);
            Assert.AreEqual(new[] {nDate}, obj.FDateArr);
            Assert.AreEqual(new[] {nGuid}, obj.FGuidArr);
            Assert.AreEqual(new[] {TestEnum.One}, obj.FEnumArr);

            // Check builder field caching.
            var builder = _grid.GetBinary().GetBuilder(binObj);

            Assert.AreEqual("str", builder.GetField<string>("fStr"));
            Assert.AreEqual(nDate, builder.GetField<DateTime?>("fNDate"));
            Assert.AreEqual(nDate, builder.GetField<DateTime?>("fNTimestamp"));
            Assert.AreEqual(nGuid, builder.GetField<Guid?>("fNGuid"));
            Assert.AreEqual(TestEnum.One, builder.GetField<TestEnum>("fEnum"));
            Assert.AreEqual(new[] {"str"}, builder.GetField<string[]>("fStrArr"));
            Assert.AreEqual(new[] {nDate}, builder.GetField<DateTime?[]>("fDateArr"));
            Assert.AreEqual(new[] {nDate}, builder.GetField<DateTime?[]>("fTimestampArr"));
            Assert.AreEqual(new[] {nGuid}, builder.GetField<Guid?[]>("fGuidArr"));
            Assert.AreEqual(new[] {TestEnum.One}, builder.GetField<TestEnum[]>("fEnumArr"));

            // Check reassemble.
            binObj = builder.Build();

            Assert.AreEqual("str", binObj.GetField<string>("fStr"));
            Assert.AreEqual(nDate, binObj.GetField<DateTime?>("fNDate"));
            Assert.AreEqual(nDate, binObj.GetField<DateTime?>("fNTimestamp"));
            Assert.AreEqual(nGuid, binObj.GetField<Guid?>("fNGuid"));
            Assert.AreEqual(TestEnum.One, binObj.GetField<TestEnum>("fEnum"));
            Assert.AreEqual(new[] {"str"}, binObj.GetField<string[]>("fStrArr"));
            Assert.AreEqual(new[] {nDate}, binObj.GetField<DateTime?[]>("fDateArr"));
            Assert.AreEqual(new[] {nDate}, binObj.GetField<DateTime?[]>("fTimestampArr"));
            Assert.AreEqual(new[] {nGuid}, binObj.GetField<Guid?[]>("fGuidArr"));
            Assert.AreEqual(new[] {TestEnum.One}, binObj.GetField<TestEnum[]>("fEnumArr"));

            obj = binObj.Deserialize<StringDateGuidEnum>();

            Assert.AreEqual("str", obj.FStr);
            Assert.AreEqual(nDate, obj.FnDate);
            Assert.AreEqual(nDate, obj.FnTimestamp);
            Assert.AreEqual(nGuid, obj.FnGuid);
            Assert.AreEqual(TestEnum.One, obj.FEnum);
            Assert.AreEqual(new[] {"str"}, obj.FStrArr);
            Assert.AreEqual(new[] {nDate}, obj.FDateArr);
            Assert.AreEqual(new[] {nGuid}, obj.FGuidArr);
            Assert.AreEqual(new[] {TestEnum.One}, obj.FEnumArr);
        }
Example #3
0
        /// <summary>
        /// Checks the primitive array fields.
        /// </summary>
        private static void CheckPrimitiveArrayFields1(IBinaryObject binObj)
        {
            Assert.AreEqual(100, binObj.GetHashCode());

            IBinaryType meta = binObj.GetBinaryType();

            Assert.AreEqual(typeof(PrimitiveArrays).Name, meta.TypeName);

            Assert.AreEqual(9, meta.Fields.Count);

            Assert.AreEqual(BinaryTypeNames.TypeNameArrayByte, meta.GetFieldTypeName("fByte"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayBool, meta.GetFieldTypeName("fBool"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayShort, meta.GetFieldTypeName("fShort"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayChar, meta.GetFieldTypeName("fChar"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayInt, meta.GetFieldTypeName("fInt"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayLong, meta.GetFieldTypeName("fLong"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayFloat, meta.GetFieldTypeName("fFloat"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayDouble, meta.GetFieldTypeName("fDouble"));
            Assert.AreEqual(BinaryTypeNames.TypeNameArrayDecimal, meta.GetFieldTypeName("fDecimal"));

            Assert.AreEqual(new byte[] { 1 }, binObj.GetField<byte[]>("fByte"));
            Assert.AreEqual(new[] { true }, binObj.GetField<bool[]>("fBool"));
            Assert.AreEqual(new short[] { 2 }, binObj.GetField<short[]>("fShort"));
            Assert.AreEqual(new[] { 'a' }, binObj.GetField<char[]>("fChar"));
            Assert.AreEqual(new[] { 3 }, binObj.GetField<int[]>("fInt"));
            Assert.AreEqual(new long[] { 4 }, binObj.GetField<long[]>("fLong"));
            Assert.AreEqual(new float[] { 5 }, binObj.GetField<float[]>("fFloat"));
            Assert.AreEqual(new double[] { 6 }, binObj.GetField<double[]>("fDouble"));
            Assert.AreEqual(new decimal?[] { 7.7m }, binObj.GetField<decimal?[]>("fDecimal"));

            PrimitiveArrays obj = binObj.Deserialize<PrimitiveArrays>();

            Assert.AreEqual(new byte[] { 1 }, obj.FByte);
            Assert.AreEqual(new[] { true }, obj.FBool);
            Assert.AreEqual(new short[] { 2 }, obj.FShort);
            Assert.AreEqual(new[] { 'a' }, obj.FChar);
            Assert.AreEqual(new[] { 3 }, obj.FInt);
            Assert.AreEqual(new long[] { 4 }, obj.FLong);
            Assert.AreEqual(new float[] { 5 }, obj.FFloat);
            Assert.AreEqual(new double[] { 6 }, obj.FDouble);
            Assert.AreEqual(new decimal?[] { 7.7m }, obj.FDecimal);
        }
Example #4
0
        /// <summary>
        /// Checks the primitive fields values.
        /// </summary>
        private static void CheckPrimitiveFields1(IBinaryObject binObj)
        {
            Assert.AreEqual(100, binObj.GetHashCode());

            IBinaryType meta = binObj.GetBinaryType();

            Assert.AreEqual(typeof(Primitives).Name, meta.TypeName);

            Assert.AreEqual(9, meta.Fields.Count);

            Assert.AreEqual(BinaryTypeNames.TypeNameByte, meta.GetFieldTypeName("fByte"));
            Assert.AreEqual(BinaryTypeNames.TypeNameBool, meta.GetFieldTypeName("fBool"));
            Assert.AreEqual(BinaryTypeNames.TypeNameShort, meta.GetFieldTypeName("fShort"));
            Assert.AreEqual(BinaryTypeNames.TypeNameChar, meta.GetFieldTypeName("fChar"));
            Assert.AreEqual(BinaryTypeNames.TypeNameInt, meta.GetFieldTypeName("fInt"));
            Assert.AreEqual(BinaryTypeNames.TypeNameLong, meta.GetFieldTypeName("fLong"));
            Assert.AreEqual(BinaryTypeNames.TypeNameFloat, meta.GetFieldTypeName("fFloat"));
            Assert.AreEqual(BinaryTypeNames.TypeNameDouble, meta.GetFieldTypeName("fDouble"));
            Assert.AreEqual(BinaryTypeNames.TypeNameDecimal, meta.GetFieldTypeName("fDecimal"));

            Assert.AreEqual(1, binObj.GetField<byte>("fByte"));
            Assert.AreEqual(true, binObj.GetField<bool>("fBool"));
            Assert.AreEqual(2, binObj.GetField<short>("fShort"));
            Assert.AreEqual('a', binObj.GetField<char>("fChar"));
            Assert.AreEqual(3, binObj.GetField<int>("fInt"));
            Assert.AreEqual(4, binObj.GetField<long>("fLong"));
            Assert.AreEqual(5, binObj.GetField<float>("fFloat"));
            Assert.AreEqual(6, binObj.GetField<double>("fDouble"));
            Assert.AreEqual(7.7m, binObj.GetField<decimal>("fDecimal"));

            Primitives obj = binObj.Deserialize<Primitives>();

            Assert.AreEqual(1, obj.FByte);
            Assert.AreEqual(true, obj.FBool);
            Assert.AreEqual(2, obj.FShort);
            Assert.AreEqual('a', obj.FChar);
            Assert.AreEqual(3, obj.FInt);
            Assert.AreEqual(4, obj.FLong);
            Assert.AreEqual(5, obj.FFloat);
            Assert.AreEqual(6, obj.FDouble);
            Assert.AreEqual(7.7m, obj.FDecimal);
        }