aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/Google.Protobuf.Test/JsonParserTest.cs
diff options
context:
space:
mode:
authorJon Skeet <jonskeet@google.com>2016-01-15 14:18:16 +0000
committerJon Skeet <jonskeet@google.com>2016-01-15 14:18:16 +0000
commitb1ea15f7a5480fe946165b0257de4981edca1c82 (patch)
treece1eae7636824d4137c64b2cad8a579d4836eee3 /csharp/src/Google.Protobuf.Test/JsonParserTest.cs
parent8866d6a80ed30e1ff32f1c5420f1a803c26fa13a (diff)
downloadprotobuf-b1ea15f7a5480fe946165b0257de4981edca1c82.tar.gz
protobuf-b1ea15f7a5480fe946165b0257de4981edca1c82.tar.bz2
protobuf-b1ea15f7a5480fe946165b0257de4981edca1c82.zip
Make sure that
"valueField": null is parsed appropriately, i.e. that it remembers that the field is set.
Diffstat (limited to 'csharp/src/Google.Protobuf.Test/JsonParserTest.cs')
-rw-r--r--csharp/src/Google.Protobuf.Test/JsonParserTest.cs12
1 files changed, 11 insertions, 1 deletions
diff --git a/csharp/src/Google.Protobuf.Test/JsonParserTest.cs b/csharp/src/Google.Protobuf.Test/JsonParserTest.cs
index bfbde364..612a7b12 100644
--- a/csharp/src/Google.Protobuf.Test/JsonParserTest.cs
+++ b/csharp/src/Google.Protobuf.Test/JsonParserTest.cs
@@ -124,7 +124,9 @@ namespace Google.Protobuf
[Test]
public void SingularWrappers_ExplicitNulls()
{
- var message = new TestWellKnownTypes();
+ // When we parse the "valueField": null part, we remember it... basically, it's one case
+ // where explicit default values don't fully roundtrip.
+ var message = new TestWellKnownTypes { ValueField = Value.ForNull() };
var json = new JsonFormatter(new JsonFormatter.Settings(true)).Format(message);
var parsed = JsonParser.Default.Parse<TestWellKnownTypes>(json);
Assert.AreEqual(message, parsed);
@@ -151,6 +153,14 @@ namespace Google.Protobuf
}
[Test]
+ public void ExplicitNullValue()
+ {
+ string json = "{\"valueField\": null}";
+ var message = JsonParser.Default.Parse<TestWellKnownTypes>(json);
+ Assert.AreEqual(new TestWellKnownTypes { ValueField = Value.ForNull() }, message);
+ }
+
+ [Test]
public void BytesWrapper_Standalone()
{
ByteString data = ByteString.CopyFrom(1, 2, 3);