diff options
author | Jon Skeet <skeet@pobox.com> | 2008-10-23 21:05:58 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2008-10-23 21:05:58 +0100 |
commit | 20bfd9bf5015b21adab17fce4bd78510f25137d9 (patch) | |
tree | 7ef5e47fd4e5c579b7daa8496fe9da465228302a /src/ProtocolBuffers.Test/GeneratedMessageTest.cs | |
parent | b8c2fc57fc4711293e487c6a8df95de5188f9c28 (diff) | |
download | protobuf-20bfd9bf5015b21adab17fce4bd78510f25137d9.tar.gz protobuf-20bfd9bf5015b21adab17fce4bd78510f25137d9.tar.bz2 protobuf-20bfd9bf5015b21adab17fce4bd78510f25137d9.zip |
Fix bug in GeneratedBuilder.MergeFrom
Diffstat (limited to 'src/ProtocolBuffers.Test/GeneratedMessageTest.cs')
-rw-r--r-- | src/ProtocolBuffers.Test/GeneratedMessageTest.cs | 24 |
1 files changed, 24 insertions, 0 deletions
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); + } } } |