aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs')
-rw-r--r--csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
index e21d904d..26165428 100644
--- a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
+++ b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
@@ -1,4 +1,5 @@
-using Google.Protobuf.TestProtos;
+using System;
+using Google.Protobuf.TestProtos;
using NUnit.Framework;
namespace Google.Protobuf
@@ -257,5 +258,22 @@ namespace Google.Protobuf
original.OneofNestedMessage.Bb = 30;
Assert.AreNotEqual(original, clone);
}
+
+ [Test]
+ public void Freeze()
+ {
+ var frozen = new TestAllTypes();
+ frozen.Freeze();
+ Assert.IsTrue(frozen.IsFrozen);
+
+ Assert.Throws<InvalidOperationException>(() => frozen.ClearOneofField());
+ Assert.Throws<InvalidOperationException>(() => frozen.SingleInt32 = 0);
+ Assert.Throws<InvalidOperationException>(() => frozen.SingleNestedMessage = null);
+ Assert.Throws<InvalidOperationException>(() => frozen.SingleNestedEnum = 0);
+ Assert.Throws<InvalidOperationException>(() => frozen.OneofString = null);
+ Assert.Throws<InvalidOperationException>(() => frozen.OneofUint32 = 0U);
+ Assert.Throws<InvalidOperationException>(() => frozen.RepeatedDouble.Add(0.0));
+ Assert.Throws<InvalidOperationException>(() => frozen.RepeatedNestedMessage.Add(new TestAllTypes.Types.NestedMessage()));
+ }
}
}