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]); }
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"]); }