aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs
diff options
context:
space:
mode:
authorJon Skeet <jonskeet@google.com>2015-09-28 17:28:02 +0100
committerJon Skeet <jonskeet@google.com>2015-10-01 13:07:47 +0100
commit9ed6d4da3710daae65cdc60719ebff79a472b648 (patch)
treeb0b8546db228e95ac55f9f4a9b8bc3f4db7001fd /csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs
parentebf3eb630de34105432fb998492346929b577dcb (diff)
downloadprotobuf-9ed6d4da3710daae65cdc60719ebff79a472b648.tar.gz
protobuf-9ed6d4da3710daae65cdc60719ebff79a472b648.tar.bz2
protobuf-9ed6d4da3710daae65cdc60719ebff79a472b648.zip
Support ToString in RepeatedField and MapField.
This changes how we approach JSON formatting in general - instead of looking at the field a value came from, we just look at the type of the value. It's possible this *could* be slightly inefficient, but if we start caring about JSON performance deeply, we'll probably want to rewrite all of this anyway. It's definitely simpler this way. When we support dynamic messages, we'll need to modify JsonFormatter to handle enum values, as they won't come be "real" .NET enums at that point. It shouldn't be hard to do though.
Diffstat (limited to 'csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs')
-rw-r--r--csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs14
1 files changed, 14 insertions, 0 deletions
diff --git a/csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs b/csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs
index 29c4c2a9..ba82c0e8 100644
--- a/csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs
+++ b/csharp/src/Google.Protobuf.Test/Collections/MapFieldTest.cs
@@ -562,6 +562,20 @@ namespace Google.Protobuf.Collections
Assert.IsFalse(values.Contains(null));
}
+ [Test]
+ public void ToString_StringToString()
+ {
+ var map = new MapField<string, string> { { "foo", "bar" }, { "x", "y" } };
+ Assert.AreEqual("{ \"foo\": \"bar\", \"x\": \"y\" }", map.ToString());
+ }
+
+ [Test]
+ public void ToString_UnsupportedKeyType()
+ {
+ var map = new MapField<byte, string> { { 10, "foo" } };
+ Assert.Throws<ArgumentException>(() => map.ToString());
+ }
+
private static KeyValuePair<TKey, TValue> NewKeyValuePair<TKey, TValue>(TKey key, TValue value)
{
return new KeyValuePair<TKey, TValue>(key, value);