aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers.Test/DynamicMessageTest.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2009-02-18 16:06:22 +0000
committerJon Skeet <skeet@pobox.com>2009-02-18 16:06:22 +0000
commit25a28580a6f307cb8eb040367f5671e678e9896b (patch)
tree6ce918e09f644733ad514eac706208be2d5f7883 /src/ProtocolBuffers.Test/DynamicMessageTest.cs
parent0ca3fecfafe6b2f7b6de4a5e1b978353fcaae83b (diff)
downloadprotobuf-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.cs29
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);