コード例 #1
0
        public void Serialization_NotSet()
        {
            var stream  = new MemoryStream();
            var message = new TestProto3Optional();

            message.WriteTo(stream);
            Assert.AreEqual(0, stream.Length);
        }
コード例 #2
0
        public void Serialization_SetToDefault()
        {
            var stream  = new MemoryStream();
            var message = new TestProto3Optional {
                OptionalInt32 = 0
            };

            message.WriteTo(stream);
            Assert.AreEqual(2, stream.Length); // Tag and value
        }
コード例 #3
0
        public void Serialization_Roundtrip()
        {
            var original = new TestProto3Optional {
                OptionalInt64 = 0L, OptionalFixed32 = 5U
            };
            var stream = new MemoryStream();

            original.WriteTo(stream);
            stream.Position = 0;
            var deserialized = TestProto3Optional.Parser.ParseFrom(stream);

            Assert.AreEqual(0, deserialized.OptionalInt32);
            Assert.IsFalse(deserialized.HasOptionalInt32);

            Assert.AreEqual(0L, deserialized.OptionalInt64);
            Assert.IsTrue(deserialized.HasOptionalInt64);

            Assert.AreEqual(5U, deserialized.OptionalFixed32);
            Assert.IsTrue(deserialized.HasOptionalFixed32);
        }