Add tests for #3811
authorMiguel de Icaza <miguel@gnome.org>
Fri, 15 May 2015 22:27:31 +0000 (18:27 -0400)
committerMiguel de Icaza <miguel@gnome.org>
Fri, 15 May 2015 22:27:53 +0000 (18:27 -0400)
mcs/class/System.ServiceModel.Web/Test/System.Runtime.Serialization.Json/DataContractJsonSerializerTest.cs

index 21eef3451a0525b3894e0f86a7b46ec9adf1c068..bb7c1d9f5796533b220b356a212acec4bfb29eaf 100644 (file)
@@ -1871,7 +1871,28 @@ namespace MonoTests.System.Runtime.Serialization.Json
                        string serializedObj = @"{""PolymorphicProperty"":{""__type"":""UnknownDerivedType:#MonoTests.System.Runtime.Serialization.Json"",""BaseTypeProperty"":""Base"",""DerivedProperty"":""Derived 1""},""Name"":""Parent2""}";
                        ParentType deserializedObj = Deserialize<ParentType> (serializedObj);
                }
-                       
+
+               [Test]
+               public void SubclassTest ()
+               {
+                       var knownTypes = new List<Type> { typeof(IntList) };
+                       var serializer = new DataContractJsonSerializer(typeof(ListOfNumbers), knownTypes);
+
+                       string json = "{\"Numbers\": [85]}";
+                       using (var stream = new MemoryStream(UTF8Encoding.Default.GetBytes(json)))
+                       {
+                               var nums = (ListOfNumbers)serializer.ReadObject(stream);
+                               Assert.AreEqual (1, nums.Numbers.Count);
+                       }
+               }
+               [DataContract]
+               public class ListOfNumbers
+               {
+                       [DataMember]
+                       public IntList Numbers;
+               }
+
+               public class IntList : List<int>{}
                #endregion
        }