diff options
author | Jon Skeet <jonskeet@google.com> | 2015-06-23 16:09:27 +0100 |
---|---|---|
committer | Jon Skeet <jonskeet@google.com> | 2015-06-24 17:56:22 +0100 |
commit | bfee2dfe137b07e64ebd46baf71d932d58d01b1f (patch) | |
tree | 4bf6258a990369335cc82c8a8059eaaf1dc2dd06 /csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs | |
parent | 94071b54d24d2f2f1cb5933a692b5397a047057c (diff) | |
download | protobuf-bfee2dfe137b07e64ebd46baf71d932d58d01b1f.tar.gz protobuf-bfee2dfe137b07e64ebd46baf71d932d58d01b1f.tar.bz2 protobuf-bfee2dfe137b07e64ebd46baf71d932d58d01b1f.zip |
Implement freezing for messages and repeated fields.
Fixes issue #523.
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs')
-rw-r--r-- | csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs | 20 |
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()));
+ }
}
}
|