public void CustomSerializerForBaseType_DeserializesDescendant() { var source = new MyGrandchild() { BaseProperty = 42, }; var serializer = GetSerializer <MyBase>(); var pack = serializer.Serialize(source); var target = serializer.Deserialize(pack); target.Should().BeOfType <MyGrandchild>(); target.BaseProperty.Should().Be(42); }
public void CustomSerializerForBaseType_SerializesDescendant() { var source = new MyGrandchild() { BaseProperty = 42, }; var serializer = GetSerializer <MyBase>(); var pack = serializer.Serialize(source); var jobj = JObject.Parse(pack); jobj[Constants.TypeNameKey].Value <string>().Should().Be("MyGrandchild"); jobj[Constants.VersionKey].Value <uint>().Should().Be(1); jobj["MyKey"].Value <int>().Should().Be(42); }