Exemple #1
0
        public static void CheckTestMessage(Test.TestAllTypes.Builder builder)
        {
            builder.GetVoidField();
            Assert.AreEqual(builder.GetBoolField(), true);
            Assert.AreEqual(builder.GetInt8Field(), -123);
            Assert.AreEqual(builder.GetInt16Field(), -12345);
            Assert.AreEqual(builder.GetInt32Field(), -12345678);
            Assert.AreEqual(builder.GetInt64Field(), -123456789012345L);
            Assert.AreEqual(builder.GetUInt8Field(), 0xea);
            Assert.AreEqual(builder.GetUInt16Field(), 0x4567);
            Assert.AreEqual(builder.GetUInt32Field(), 0x34567890);
            Assert.AreEqual(builder.GetUInt64Field(), 0x1234567890123456L);
            Assert.AreEqual(builder.GetFloat32Field(), 1234.5f);
            Assert.AreEqual(builder.GetFloat64Field(), -123e45);
            Assert.AreEqual(builder.GetTextField().ToString(), "foo");

            {
                var subBuilder = builder.GetStructField();
                subBuilder.GetVoidField();
                Assert.AreEqual(subBuilder.GetBoolField(), true);
                Assert.AreEqual(subBuilder.GetInt8Field(), -12);
                Assert.AreEqual(subBuilder.GetInt16Field(), 3456);
                Assert.AreEqual(subBuilder.GetInt32Field(), -78901234);
                Assert.AreEqual(subBuilder.GetInt64Field(), 56789012345678L);
                Assert.AreEqual(subBuilder.GetUInt8Field(), 90);
                Assert.AreEqual(subBuilder.GetUInt16Field(), 1234);
                Assert.AreEqual(subBuilder.GetUInt32Field(), 56789012);
                Assert.AreEqual(subBuilder.GetUInt64Field(), 345678901234567890L);
                Assert.AreEqual(subBuilder.GetFloat32Field(), -1.25e-10f);
                Assert.AreEqual(subBuilder.GetFloat64Field(), 345);

                {
                    var subSubBuilder = subBuilder.GetStructField();
                    Assert.AreEqual(subSubBuilder.GetTextField().ToString(), "nested");
                }

                Assert.AreEqual(subBuilder.GetEnumField(), Test.TestEnum.Baz);

                var boolList = subBuilder.GetBoolList();
                Assert.AreEqual(boolList[0], false);
                Assert.AreEqual(boolList[1], true);
                Assert.AreEqual(boolList[2], false);
                Assert.AreEqual(boolList[3], true);
                Assert.AreEqual(boolList[4], true);
            }
            {
                Assert.AreEqual(builder.GetEnumField(), Test.TestEnum.Corge);

                Assert.AreEqual(builder.GetVoidList().Length, 6);

                var boolList = builder.GetBoolList();
                Assert.AreEqual(boolList[0], true);
                Assert.AreEqual(boolList[1], false);
                Assert.AreEqual(boolList[2], false);
                Assert.AreEqual(boolList[3], true);

                var float64List = builder.GetFloat64List();
                Assert.AreEqual(float64List[0], 7777.75);
                Assert.AreEqual(float64List[1], System.Double.PositiveInfinity);
                Assert.AreEqual(float64List[2], System.Double.NegativeInfinity);
                Assert.AreEqual(float64List[3], System.Double.NaN);

                var textList = builder.GetTextList();
                Assert.AreEqual(textList.Length, 3);
                Assert.AreEqual(textList[0].ToString(), "plugh");
                Assert.AreEqual(textList[1].ToString(), "xyzzy");
                Assert.AreEqual(textList[2].ToString(), "thud");

                var structList = builder.GetStructList();
                Assert.AreEqual(structList.Length, 3);
                Assert.AreEqual(structList[0].GetTextField().ToString(), "structlist 1");
                Assert.AreEqual(structList[1].GetTextField().ToString(), "structlist 2");
                Assert.AreEqual(structList[2].GetTextField().ToString(), "structlist 3");

                var enumList = builder.GetEnumList();
                Assert.AreEqual(enumList[0], Test.TestEnum.Foo);
                Assert.AreEqual(enumList[1], Test.TestEnum.Garply);
            }
        }