aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers.Test/DynamicMessageTest.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2009-02-24 16:50:56 +0000
committerJon Skeet <skeet@pobox.com>2009-02-24 16:50:56 +0000
commite81a9d7c87380028b72cd77d48e767705ee224b5 (patch)
treea4e0c00735509e67a8188dfc6934f418a49b3abf /src/ProtocolBuffers.Test/DynamicMessageTest.cs
parent25a28580a6f307cb8eb040367f5671e678e9896b (diff)
downloadprotobuf-e81a9d7c87380028b72cd77d48e767705ee224b5.tar.gz
protobuf-e81a9d7c87380028b72cd77d48e767705ee224b5.tar.bz2
protobuf-e81a9d7c87380028b72cd77d48e767705ee224b5.zip
Added ToBuilder and WeakToBuilder
Diffstat (limited to 'src/ProtocolBuffers.Test/DynamicMessageTest.cs')
-rw-r--r--src/ProtocolBuffers.Test/DynamicMessageTest.cs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/ProtocolBuffers.Test/DynamicMessageTest.cs b/src/ProtocolBuffers.Test/DynamicMessageTest.cs
index 89193ad2..edcce38e 100644
--- a/src/ProtocolBuffers.Test/DynamicMessageTest.cs
+++ b/src/ProtocolBuffers.Test/DynamicMessageTest.cs
@@ -1,3 +1,4 @@
+using System.Collections.Generic;
using Google.ProtocolBuffers.TestProtos;
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
@@ -173,5 +174,26 @@ namespace Google.ProtocolBuffers {
DynamicMessage copy = DynamicMessage.CreateBuilder(message).Build();
reflectionTester.AssertAllFieldsSetViaReflection(copy);
}
+
+ [Test]
+ public void ToBuilder() {
+ DynamicMessage.Builder builder =
+ DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ int unknownFieldNum = 9;
+ ulong unknownFieldVal = 90;
+ builder.SetUnknownFields(UnknownFieldSet.CreateBuilder()
+ .AddField(unknownFieldNum,
+ UnknownField.CreateBuilder().AddVarint(unknownFieldVal).Build())
+ .Build());
+ DynamicMessage message = builder.Build();
+
+ DynamicMessage derived = message.ToBuilder().Build();
+ reflectionTester.AssertAllFieldsSetViaReflection(derived);
+
+ IList<ulong> values = derived.UnknownFields.FieldDictionary[unknownFieldNum].VarintList;
+ Assert.AreEqual(1, values.Count);
+ Assert.AreEqual(unknownFieldVal, values[0]);
+ }
}
}