public void Serialize_TestTableWithUnion_And_TestTable2_CanBeReadByOracle()
        {
            const string stringProp = "Hello, FlatBuffers!";

            var table2 = new TestTable2()
            {
                StringProp = stringProp
            };

            var obj = new TestTableWithUnion()
            {
                IntProp   = 512,
                UnionProp = table2
            };

            var buffer = FlatBuffersConvert.SerializeObject(obj);

            var oracle       = new SerializationTestOracle();
            var oracleResult = oracle.ReadTestTableWithUnion(buffer);

            Assert.AreEqual(512, oracleResult.IntProp);
            Assert.AreEqual(typeof(TestTable2), oracleResult.UnionProp.GetType());

            var oracleResult2 = oracleResult.UnionProp as TestTable2;

            Assert.IsNotNull(oracleResult2);
            Assert.AreEqual(stringProp, oracleResult2.StringProp);
        }
Пример #2
0
        public TestTable2 ReadTestTable2(byte[] buffer)
        {
            var test   = SerializationTests.TestTable2.GetRootAsTestTable2(new ByteBuffer(buffer));
            var result = new TestTable2()
            {
                StringProp = test.StringProp
            };

            return(result);
        }
Пример #3
0
        public void TestBinaryColumn()
        {
            var cmdFac   = new QueryCommandFactory();
            var table    = new TestTable2();
            var criteria = table.Insert(table.Data.Set(new byte[] { 0, 1, 2 })).Where(table.ID == 123);
            var cmd      = cmdFac.CreateCommand(criteria, false);

            Assert.AreEqual("@p1", cmd.Parameters[0].ParameterName);
            Assert.AreEqual(DbType.Binary, cmd.Parameters[0].DbType);
            Assert.AreEqual(1, (cmd.Parameters[0].Value as byte[])[1]);
            Assert.AreEqual("@p2", cmd.Parameters[1].ParameterName);
            Assert.AreEqual(123, cmd.Parameters[1].Value);
        }
        public void Serialize_WithTestTable2_AndNullString_CanBeReadByOracle()
        {
            var serializer = new FlatBuffersSerializer();

            var obj = new TestTable2();

            var buffer = new byte[64];

            serializer.Serialize(obj, buffer, 0, buffer.Length);

            var oracle       = new SerializationTestOracle();
            var oracleResult = oracle.ReadTestTable2(buffer);

            Assert.IsNull(oracleResult.StringProp);
        }
        public void Serialize_WithTestTable2_CanBeReadByOracle()
        {
            const string stringProp = "Hello, FlatBuffers!";
            var          serializer = new FlatBuffersSerializer();

            var obj = new TestTable2()
            {
                StringProp = stringProp
            };

            var buffer = new byte[64];

            serializer.Serialize(obj, buffer, 0, buffer.Length);

            var oracle       = new SerializationTestOracle();
            var oracleResult = oracle.ReadTestTable2(buffer);

            Assert.AreEqual(obj.StringProp, oracleResult.StringProp);
        }
        public void Deserialize_FromOracleData_WithTestTableWithUnion_And_TestTable2()
        {
            var table2 = new TestTable2()
            {
                StringProp = "Hello, FlatBuffers!"
            };

            var oracle       = new SerializationTestOracle();
            var oracleResult = oracle.GenerateTestTableWithUnion(1024, testTable2Prop: table2);

            var serializer = new FlatBuffersSerializer();
            var o          = serializer.Deserialize <TestTableWithUnion>(oracleResult, 0, oracleResult.Length);

            Assert.AreEqual(1024, o.IntProp);

            Assert.IsInstanceOf <TestTable2>(o.UnionProp);

            var o2 = o.UnionProp as TestTable2;

            Assert.AreEqual(table2.StringProp, o2.StringProp);
        }
Пример #7
0
        public byte[] GenerateTestTableWithUnionAndMoreFields(int intProp, string stringProp, float floatProp, double doubleProp, TestTable1 testTable1Prop = null, TestTable2 testTable2Prop = null)
        {
            if (testTable1Prop != null && testTable2Prop != null)
            {
                throw new ArgumentException();
            }

            var fbb = new FlatBufferBuilder(8);

            var stringOffset = fbb.CreateString(stringProp);

            var unionTableOffset = 0;
            var unionType        = TestUnion.NONE;

            if (testTable1Prop != null)
            {
                unionTableOffset = SerializationTests.TestTable1.CreateTestTable1(fbb, testTable1Prop.IntProp,
                                                                                  testTable1Prop.ByteProp, testTable1Prop.ShortProp).Value;
                unionType = TestUnion.TestTable1;
            }
            else if (testTable2Prop != null)
            {
                var stringOffset2 = fbb.CreateString(testTable2Prop.StringProp);
                unionTableOffset = SerializationTests.TestTable2.CreateTestTable2(fbb, stringOffset2).Value;
                unionType        = TestUnion.TestTable2;
            }

            var tableOffset = SerializationTests.TestTableWithUnionAndMoreFields.CreateTestTableWithUnionAndMoreFields(fbb, intProp,
                                                                                                                       unionType, unionTableOffset, stringOffset, floatProp, doubleProp);

            fbb.Finish(tableOffset.Value);
            return(GetBytes(fbb));
        }