diff options
author | Jon Skeet <skeet@pobox.com> | 2009-02-18 16:06:22 +0000 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2009-02-18 16:06:22 +0000 |
commit | 25a28580a6f307cb8eb040367f5671e678e9896b (patch) | |
tree | 6ce918e09f644733ad514eac706208be2d5f7883 /src/ProtocolBuffers.Test/DynamicMessageTest.cs | |
parent | 0ca3fecfafe6b2f7b6de4a5e1b978353fcaae83b (diff) | |
download | protobuf-25a28580a6f307cb8eb040367f5671e678e9896b.tar.gz protobuf-25a28580a6f307cb8eb040367f5671e678e9896b.tar.bz2 protobuf-25a28580a6f307cb8eb040367f5671e678e9896b.zip |
Support packed primitive types
Diffstat (limited to 'src/ProtocolBuffers.Test/DynamicMessageTest.cs')
-rw-r--r-- | src/ProtocolBuffers.Test/DynamicMessageTest.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ProtocolBuffers.Test/DynamicMessageTest.cs b/src/ProtocolBuffers.Test/DynamicMessageTest.cs index 045f5c4f..89193ad2 100644 --- a/src/ProtocolBuffers.Test/DynamicMessageTest.cs +++ b/src/ProtocolBuffers.Test/DynamicMessageTest.cs @@ -38,11 +38,13 @@ namespace Google.ProtocolBuffers { private ReflectionTester reflectionTester; private ReflectionTester extensionsReflectionTester; + private ReflectionTester packedReflectionTester; [SetUp] public void SetUp() { reflectionTester = ReflectionTester.CreateTestAllTypesInstance(); extensionsReflectionTester = ReflectionTester.CreateTestAllExtensionsInstance(); + packedReflectionTester = ReflectionTester.CreateTestPackedTypesInstance(); } [Test] @@ -136,6 +138,33 @@ namespace Google.ProtocolBuffers { } [Test] + public void DynamicMessagePackedSerialization() { + IBuilder builder = DynamicMessage.CreateBuilder(TestPackedTypes.Descriptor); + packedReflectionTester.SetPackedFieldsViaReflection(builder); + IMessage message = builder.WeakBuild(); + + ByteString rawBytes = message.ToByteString(); + TestPackedTypes message2 = TestPackedTypes.ParseFrom(rawBytes); + + TestUtil.AssertPackedFieldsSet(message2); + + // In fact, the serialized forms should be exactly the same, byte-for-byte. + Assert.AreEqual(TestUtil.GetPackedSet().ToByteString(), rawBytes); + } + + [Test] + public void testDynamicMessagePackedParsing() { + TestPackedTypes.Builder builder = TestPackedTypes.CreateBuilder(); + TestUtil.SetPackedFields(builder); + TestPackedTypes message = builder.Build(); + + ByteString rawBytes = message.ToByteString(); + + IMessage message2 = DynamicMessage.ParseFrom(TestPackedTypes.Descriptor, rawBytes); + packedReflectionTester.AssertPackedFieldsSetViaReflection(message2); + } + + [Test] public void DynamicMessageCopy() { TestAllTypes.Builder builder = TestAllTypes.CreateBuilder(); TestUtil.SetAllFields(builder); |