From 20bfd9bf5015b21adab17fce4bd78510f25137d9 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Thu, 23 Oct 2008 21:05:58 +0100 Subject: Fix bug in GeneratedBuilder.MergeFrom --- src/ProtocolBuffers.Test/GeneratedMessageTest.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/ProtocolBuffers.Test/GeneratedMessageTest.cs') diff --git a/src/ProtocolBuffers.Test/GeneratedMessageTest.cs b/src/ProtocolBuffers.Test/GeneratedMessageTest.cs index feba6e3b..f0be393c 100644 --- a/src/ProtocolBuffers.Test/GeneratedMessageTest.cs +++ b/src/ProtocolBuffers.Test/GeneratedMessageTest.cs @@ -287,5 +287,29 @@ namespace Google.ProtocolBuffers { ).BuildPartial(); Assert.IsTrue(message.IsInitialized); } + + [Test] + public void TestOptimizedForSizeMergeUsesAllFieldsFromTarget() { + TestOptimizedForSize withFieldSet = new TestOptimizedForSize.Builder { I = 10 }.Build(); + TestOptimizedForSize.Builder builder = new TestOptimizedForSize.Builder(); + builder.MergeFrom(withFieldSet); + TestOptimizedForSize built = builder.Build(); + Assert.AreEqual(10, built.I); + } + + [Test] + public void UninitializedExtensionInOptimizedForSizeMakesMessageUninitialized() { + TestOptimizedForSize.Builder builder = new TestOptimizedForSize.Builder(); + builder.SetExtension(TestOptimizedForSize.TestExtension2, + new TestRequiredOptimizedForSize.Builder().BuildPartial()); + Assert.IsFalse(builder.IsInitialized); + Assert.IsFalse(builder.BuildPartial().IsInitialized); + + builder = new TestOptimizedForSize.Builder(); + builder.SetExtension(TestOptimizedForSize.TestExtension2, + new TestRequiredOptimizedForSize.Builder { X = 10 }.BuildPartial()); + Assert.IsTrue(builder.IsInitialized); + Assert.IsTrue(builder.BuildPartial().IsInitialized); + } } } -- cgit v1.2.3