Exemplo n.º 1
0
        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]);
        }
Exemplo n.º 2
0
        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]);
        }