public async Task ArrayLoop() { ListWithGenericCycle root = new ListWithGenericCycle(); root.Add(root); string expected = JsonConvert.SerializeObject(root, s_newtonsoftSerializerSettingsPreserve); string actual = await JsonSerializerWrapperForString.SerializeWrapper(root, s_serializerOptionsPreserve); Assert.Equal(expected, actual); ListWithGenericCycle rootCopy = await JsonSerializerWrapperForString.DeserializeWrapper <ListWithGenericCycle>(actual, s_serializerOptionsPreserve); Assert.Same(rootCopy, rootCopy[0]); // Duplicate reference root = new ListWithGenericCycle(); root.Add(root); root.Add(root); root.Add(root); expected = JsonConvert.SerializeObject(root, s_newtonsoftSerializerSettingsPreserve); actual = await JsonSerializerWrapperForString.SerializeWrapper(root, s_serializerOptionsPreserve); Assert.Equal(expected, actual); rootCopy = await JsonSerializerWrapperForString.DeserializeWrapper <ListWithGenericCycle>(actual, s_serializerOptionsPreserve); Assert.Same(rootCopy, rootCopy[0]); Assert.Same(rootCopy, rootCopy[1]); Assert.Same(rootCopy, rootCopy[2]); }
public static void ArrayLoop() { ListWithGenericCycle root = new ListWithGenericCycle(); root.Add(root); string expected = JsonConvert.SerializeObject(root, s_newtonsoftSerializerSettingsPreserve); string actual = JsonSerializer.Serialize(root, s_serializerOptionsPreserve); Assert.Equal(expected, actual); ListWithGenericCycle rootCopy = JsonSerializer.Deserialize <ListWithGenericCycle>(actual, s_serializerOptionsPreserve); Assert.Same(rootCopy, rootCopy[0]); // Duplicate reference root = new ListWithGenericCycle(); root.Add(root); root.Add(root); root.Add(root); expected = JsonConvert.SerializeObject(root, s_newtonsoftSerializerSettingsPreserve); actual = JsonSerializer.Serialize(root, s_serializerOptionsPreserve); Assert.Equal(expected, actual); rootCopy = JsonSerializer.Deserialize <ListWithGenericCycle>(actual, s_serializerOptionsPreserve); Assert.Same(rootCopy, rootCopy[0]); Assert.Same(rootCopy, rootCopy[1]); Assert.Same(rootCopy, rootCopy[2]); }