diff --git a/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs b/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs index 7f5599020944f7..7df7a7944957e6 100644 --- a/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs +++ b/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs @@ -4573,4 +4573,104 @@ private static void TestObjectWithDifferentPayload(T value, string netcorePay Assert.NotNull(deserializedDesktopObject); SerializationTestTypes.ComparisonHelper.CompareRecursively(value, deserializedDesktopObject); } + + [Fact] + public static void DCS_SortedList_IntSimpleType() + { + var value = new System.Collections.Generic.SortedList(); + value.Add(1, new SerializationTypes.SimpleType { P1 = "Test1", P2 = 10 }); + value.Add(2, new SerializationTypes.SimpleType { P1 = "Test2", P2 = 20 }); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"1Test1102Test220", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value[1].P1, deserializedValue[1].P1); + Assert.Equal(value[1].P2, deserializedValue[1].P2); + Assert.Equal(value[2].P1, deserializedValue[2].P1); + Assert.Equal(value[2].P2, deserializedValue[2].P2); + } + + [Fact] + public static void DCS_ObservableCollection_Int() + { + var value = new System.Collections.ObjectModel.ObservableCollection(); + value.Add(1); + value.Add(2); + value.Add(3); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"123", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value[0], deserializedValue[0]); + Assert.Equal(value[1], deserializedValue[1]); + Assert.Equal(value[2], deserializedValue[2]); + } + + [Fact] + public static void DCS_ReadOnlyDictionary_IntString() + { + var dict = new Dictionary(); + dict[1] = "One"; + dict[2] = "Two"; + var value = new System.Collections.ObjectModel.ReadOnlyDictionary(dict); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"1One2Two", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value[1], deserializedValue[1]); + Assert.Equal(value[2], deserializedValue[2]); + } + + [Fact] + public static void DCS_ReadOnlyObservableCollection_Int() + { + var sourceCollection = new System.Collections.ObjectModel.ObservableCollection(); + sourceCollection.Add(1); + sourceCollection.Add(2); + sourceCollection.Add(3); + var value = new System.Collections.ObjectModel.ReadOnlyObservableCollection(sourceCollection); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"123", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value[0], deserializedValue[0]); + Assert.Equal(value[1], deserializedValue[1]); + Assert.Equal(value[2], deserializedValue[2]); + } + + [Fact] + public static void DCS_ListDictionary() + { + var value = new System.Collections.Specialized.ListDictionary(); + value.Add("Key1", "Value1"); + value.Add("Key2", "Value2"); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"Key1Value1Key2Value2", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value["Key1"], deserializedValue["Key1"]); + Assert.Equal(value["Key2"], deserializedValue["Key2"]); + } + + [Fact] + public static void DCS_StringCollection() + { + var value = new System.Collections.Specialized.StringCollection(); + value.Add("First"); + value.Add("Second"); + value.Add("Third"); + var deserializedValue = DataContractSerializerHelper.SerializeAndDeserialize(value, + @"FirstSecondThird", + skipStringCompare: true); + Assert.NotNull(deserializedValue); + Assert.Equal(value.Count, deserializedValue.Count); + Assert.Equal(value[0], deserializedValue[0]); + Assert.Equal(value[1], deserializedValue[1]); + Assert.Equal(value[2], deserializedValue[2]); + } }