Пример #1
0
        public void DataWithGenericType()
        {
            // Verify that we can serialize and deserialize various (non-roundtrip) data items
            // using the generic FromData() method.

            var converter = new JsonDataConverter();

            byte[] contents;

            // Serialize NULL.

            contents = converter.ToData(null);
            Assert.Null(converter.FromData <object>(contents));

            // Serialize a string.

            contents = converter.ToData("foo");
            Assert.Equal("foo", converter.FromData <string>(contents));

            // Serialize a byte array.

            var items = new int[] { 0, 1, 2, 3, 4 };

            contents = converter.ToData(items);
            Assert.Equal(items, converter.FromData <int[]>(contents));

            // Serialize an array of non-roundtrip objects.

            var items2 = new TestData[] { new TestData()
                                          {
                                              Hello = "World!"
                                          }, new TestData()
                                          {
                                              Hello = "Goodbye!"
                                          }, null };

            contents = converter.ToData(items2);
            items2   = converter.FromData <TestData[]>(contents);
            Assert.Equal(3, items2.Length);
            Assert.Equal("World!", items2[0].Hello);
            Assert.Equal("Goodbye!", items2[1].Hello);
            Assert.Null(items2[2]);
        }
Пример #2
0
        public void RoundTripDataWithGeneric()
        {
            // Verify that we can serialize and deserialize various roundtrip data items
            // using the generic converter.

            var converter = new JsonDataConverter();

            byte[] contents;

            // Serialize NULL.

            contents = converter.ToData(null);
            Assert.Null(converter.FromData <Person>(contents));

            // Serialize a roundtrip item without extra data.

            var bob = new Person()
            {
                Name   = "Bob",
                Age    = 27,
                Data   = new byte[] { 0, 1, 2, 3, 4 },
                Gender = Gender.Male
            };

            contents = converter.ToData(bob);
            Assert.Equal(bob, converter.FromData <Person>(contents));

            // Serialize a roundtrip item WITH extra data.

            bob.__O.Add("foo", "bar");

            contents = converter.ToData(bob);

            var deserializedBob = converter.FromData <Person>(contents);

            Assert.Equal(bob, deserializedBob);
            Assert.Equal("bar", (string)deserializedBob.__O["foo"]);
        }