/// <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")); }
/// <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); }
/// <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); }
/// <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); }