aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs')
-rw-r--r--csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs166
1 files changed, 0 insertions, 166 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs b/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
deleted file mode 100644
index 4f25a5ab..00000000
--- a/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-using System;
-using Google.ProtocolBuffers.Collections;
-using Google.ProtocolBuffers.TestProtos;
-using UnitTest.Issues.TestProtos;
-using NUnit.Framework;
-
-namespace Google.ProtocolBuffers
-{
- public class ReusableBuilderTest
- {
- //Issue 28: Circular message dependencies result in null defaults for DefaultInstance
- [Test]
- public void EnsureStaticCicularReference()
- {
- MyMessageAReferenceB ab = MyMessageAReferenceB.DefaultInstance;
- Assert.NotNull(ab);
- Assert.NotNull(ab.Value);
- MyMessageBReferenceA ba = MyMessageBReferenceA.DefaultInstance;
- Assert.NotNull(ba);
- Assert.NotNull(ba.Value);
- }
-
- [Test]
- public void TestModifyDefaultInstance()
- {
- //verify that the default instance has correctly been marked as read-only
- Assert.AreEqual(typeof(PopsicleList<bool>), TestAllTypes.DefaultInstance.RepeatedBoolList.GetType());
- PopsicleList<bool> list = (PopsicleList<bool>)TestAllTypes.DefaultInstance.RepeatedBoolList;
- Assert.IsTrue(list.IsReadOnly);
- }
-
- [Test]
- public void TestUnmodifiedDefaultInstance()
- {
- //Simply calling ToBuilder().Build() no longer creates a copy of the message
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void BuildMultipleWithoutChange()
- {
- //Calling Build() or BuildPartial() does not require a copy of the message
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- builder.SetDefaultBool(true);
-
- TestAllTypes first = builder.BuildPartial();
- //Still the same instance?
- Assert.IsTrue(ReferenceEquals(first, builder.Build()));
- //Still the same instance?
- Assert.IsTrue(ReferenceEquals(first, builder.BuildPartial().ToBuilder().Build()));
- }
-
- [Test]
- public void MergeFromDefaultInstance()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.MergeFrom(TestAllTypes.DefaultInstance);
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void BuildNewBuilderIsDefaultInstance()
- {
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, new TestAllTypes.Builder().Build()));
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, TestAllTypes.CreateBuilder().Build()));
- //last test, if you clear a builder it reverts to default instance
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance,
- TestAllTypes.CreateBuilder().SetOptionalBool(true).Build().ToBuilder().Clear().Build()));
- }
-
- [Test]
- public void BuildModifyAndRebuild()
- {
- TestAllTypes.Builder b1 = new TestAllTypes.Builder();
- b1.SetDefaultInt32(1);
- b1.AddRepeatedInt32(2);
- b1.SetOptionalForeignMessage(ForeignMessage.DefaultInstance);
-
- TestAllTypes m1 = b1.Build();
-
- b1.SetDefaultInt32(5);
- b1.AddRepeatedInt32(6);
- b1.SetOptionalForeignMessage(b1.OptionalForeignMessage.ToBuilder().SetC(7));
-
- TestAllTypes m2 = b1.Build();
-
- Assert.AreEqual("{\"optional_foreign_message\":{},\"repeated_int32\":[2],\"default_int32\":1}", Extensions.ToJson(m1));
- Assert.AreEqual("{\"optional_foreign_message\":{\"c\":7},\"repeated_int32\":[2,6],\"default_int32\":5}", Extensions.ToJson(m2));
- }
-
- [Test]
- public void CloneOnChangePrimitive()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.SetDefaultBool(true);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnAddRepeatedBool()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.AddRepeatedBool(true);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnGetRepeatedBoolList()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- GC.KeepAlive(builder.RepeatedBoolList);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnChangeMessage()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.SetOptionalForeignMessage(new ForeignMessage.Builder());
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnClearMessage()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.ClearOptionalForeignMessage();
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnGetRepeatedForeignMessageList()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- GC.KeepAlive(builder.RepeatedForeignMessageList);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnChangeEnumValue()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- builder.SetOptionalForeignEnum(ForeignEnum.FOREIGN_BAR);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- [Test]
- public void CloneOnGetRepeatedForeignEnumList()
- {
- TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
- Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- GC.KeepAlive(builder.RepeatedForeignEnumList);
- Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
- }
-
- }
-}