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