From 881db010cbe1126bf85258c1c19b2b805bfa68f7 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Thu, 4 Sep 2008 14:43:17 +0100 Subject: Fix initialization check when an optional field has required subfields --- csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs') diff --git a/csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs b/csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs index f51f9755..c820b582 100644 --- a/csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs +++ b/csharp/ProtocolBuffers.Test/GeneratedMessageTest.cs @@ -270,5 +270,21 @@ namespace Google.ProtocolBuffers { Assert.IsFalse(TestAllExtensions.DefaultInstance.HasExtension(MultiFileProto.ExtensionWithOuter)); } + + [Test] + public void OptionalFieldWithRequiredSubfieldsOptimizedForSize() { + TestOptionalOptimizedForSize message = TestOptionalOptimizedForSize.DefaultInstance; + Assert.IsTrue(message.IsInitialized); + + message = TestOptionalOptimizedForSize.CreateBuilder().SetO( + TestRequiredOptimizedForSize.CreateBuilder().BuildPartial() + ).BuildPartial(); + Assert.IsFalse(message.IsInitialized); + + message = TestOptionalOptimizedForSize.CreateBuilder().SetO( + TestRequiredOptimizedForSize.CreateBuilder().SetX(5).BuildPartial() + ).BuildPartial(); + Assert.IsTrue(message.IsInitialized); + } } } -- cgit v1.2.3