diff options
author | Jie Luo <jieluo@google.com> | 2015-05-29 12:48:25 -0700 |
---|---|---|
committer | Jie Luo <jieluo@google.com> | 2015-05-29 13:29:30 -0700 |
commit | f7b417ddfe63cb4d39775e5fd4560894cc547d65 (patch) | |
tree | 2ffb9956310e6aeb46078e7ad58db94d517f1d86 /csharp/src/ProtocolBuffers.Test/ReflectionTester.cs | |
parent | 55df12194f5f0348c3ddf0636c63ba2b3978fab5 (diff) | |
download | protobuf-f7b417ddfe63cb4d39775e5fd4560894cc547d65.tar.gz protobuf-f7b417ddfe63cb4d39775e5fd4560894cc547d65.tar.bz2 protobuf-f7b417ddfe63cb4d39775e5fd4560894cc547d65.zip |
Add oneof support for C#
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/ReflectionTester.cs')
-rw-r--r-- | csharp/src/ProtocolBuffers.Test/ReflectionTester.cs | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs b/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs index bd1d2c65..22795b3f 100644 --- a/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs +++ b/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs @@ -380,6 +380,12 @@ namespace Google.ProtocolBuffers message[f("default_string_piece")] = "424";
message[f("default_cord")] = "425";
+
+ message[f("oneof_uint32")] = 601U;
+ message[f("oneof_nested_message")] =
+ CreateBuilderForField(message, f("optional_nested_message")).SetField(nestedB, 602).WeakBuild();
+ message[f("oneof_string")] = "603";
+ message[f("oneof_bytes")] = TestUtil.ToBytes("604");
}
/// <summary>
@@ -642,6 +648,20 @@ namespace Google.ProtocolBuffers Assert.AreEqual("424", message[f("default_string_piece")]);
Assert.AreEqual("425", message[f("default_cord")]);
+ if (extensionRegistry == null)
+ {
+ Assert.IsFalse(message.HasField(f("oneof_uint32")));
+ Assert.IsFalse(message.HasField(f("oneof_nested_message")));
+ Assert.IsFalse(message.HasField(f("oneof_string")));
+ } else
+ {
+ Assert.IsTrue(message.HasField(f("oneof_uint32")));
+ Assert.IsTrue(message.HasField(f("oneof_nested_message")));
+ Assert.IsTrue(message.HasField(f("oneof_string")));
+ Assert.AreEqual(601U, message[f("oneof_uint32")]);
+ Assert.AreEqual(602, ((IMessage)message[f("oneof_nested_message")])[nestedB]);
+ Assert.AreEqual("603", message[f("oneof_string")]);
+ }
}
/// <summary>
@@ -793,6 +813,15 @@ namespace Google.ProtocolBuffers Assert.AreEqual("abc", message[f("default_string_piece")]);
Assert.AreEqual("123", message[f("default_cord")]);
+
+ Assert.IsFalse(message.HasField(f("oneof_uint32")));
+ Assert.IsFalse(message.HasField(f("oneof_nested_message")));
+ Assert.IsFalse(message.HasField(f("oneof_string")));
+ Assert.IsFalse(message.HasField(f("oneof_bytes")));
+
+ Assert.AreEqual(0U, message[f("oneof_uint32")]);
+ Assert.AreEqual("", message[f("oneof_string")]);
+ Assert.AreEqual(TestUtil.ToBytes(""), message[f("oneof_bytes")]);
}
// ---------------------------------------------------------------
@@ -1001,4 +1030,4 @@ namespace Google.ProtocolBuffers Assert.AreEqual(foreignBaz, message[f("packed_enum"), 1]);
}
}
-}
\ No newline at end of file +} |