diff options
author | csharptest <roger@csharptest.net> | 2010-11-09 14:47:27 -0600 |
---|---|---|
committer | unknown <rknapp@.svault.int> | 2010-11-09 14:47:27 -0600 |
commit | e49547735834485dd22842e1a82bc5ae4139b8a8 (patch) | |
tree | 18a1398949aaee3a6deabf0a4f51a8f45a7d420f /src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs | |
parent | 7d396f9d8a937ebfd7e27d7b253b11c47038491e (diff) | |
download | protobuf-e49547735834485dd22842e1a82bc5ae4139b8a8.tar.gz protobuf-e49547735834485dd22842e1a82bc5ae4139b8a8.tar.bz2 protobuf-e49547735834485dd22842e1a82bc5ae4139b8a8.zip |
Testing
Diffstat (limited to 'src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs')
-rw-r--r-- | src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs | 125 |
1 files changed, 121 insertions, 4 deletions
diff --git a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs index c7836d4e..e5e278a4 100644 --- a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs +++ b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs @@ -71,25 +71,129 @@ namespace Google.ProtocolBuffers { } [Test] - public void TestIBuilderLiteWeakMergeFromByteString() { + public void TestBuilderLiteMergeFromCodedInputStream() { TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() .SetOptionalString("Should be merged.").Build(); copy = TestAllTypesLite.DefaultInstance; Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); - copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild(); + copy = copy.ToBuilder().MergeFrom(CodedInputStream.CreateInstance(new MemoryStream(msg.ToByteArray()))).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeDelimitedFrom() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + Stream s = new MemoryStream(); + msg.WriteDelimitedTo(s); + s.Position = 0; + copy = copy.ToBuilder().MergeDelimitedFrom(s).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeDelimitedFromExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + Stream s = new MemoryStream(); + msg.WriteDelimitedTo(s); + s.Position = 0; + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = copy.ToBuilder().MergeDelimitedFrom(s, registry).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + + [Test] + public void TestBuilderLiteMergeFromStream() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + Stream s = new MemoryStream(); + msg.WriteTo(s); + s.Position = 0; + copy = copy.ToBuilder().MergeFrom(s).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestBuilderLiteMergeFromStreamExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + Stream s = new MemoryStream(); + msg.WriteTo(s); + s.Position = 0; + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = copy.ToBuilder().MergeFrom(s, registry).Build(); Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + + [Test] + public void TestIBuilderLiteWeakMergeFromIMessageLite() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); - //again with extension registry copy = TestAllTypesLite.DefaultInstance; Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); - copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild(); + copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom((IMessageLite)msg).WeakBuild(); Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); } [Test] + public void TestIBuilderLiteWeakMergeFromByteString() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalString("Should be merged.").Build(); + + copy = TestAllTypesLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } + + [Test] + public void TestIBuilderLiteWeakMergeFromByteStringExtensions() { + TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder() + .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build(); + + copy = TestAllExtensionsLite.DefaultInstance; + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild(); + Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray()); + + ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); + UnitTestLiteProtoFile.RegisterAllExtensions(registry); + + copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), registry).WeakBuild(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite)); + } + + [Test] public void TestIBuilderLiteWeakMergeFromCodedInputStream() { TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() .SetOptionalUint32(uint.MaxValue).Build(); @@ -147,5 +251,18 @@ namespace Google.ProtocolBuffers { Assert.IsTrue(ReferenceEquals(TestRequiredLite.DefaultInstance, ((IBuilderLite)TestRequiredLite.CreateBuilder()).WeakDefaultInstanceForType)); } + + [Test] + public void TestGeneratedBuilderLiteAddRange() { + TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder() + .SetOptionalUint32(123) + .AddRepeatedInt32(1) + .AddRepeatedInt32(2) + .AddRepeatedInt32(3) + .Build(); + + copy = msg.DefaultInstanceForType.ToBuilder().MergeFrom(msg).Build(); + Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray()); + } } } |