$jsonData = '{"bar":{"value":"baz"}}';
$serializer =
new Serializer([new ObjectNormalizer()],
['json' =>
new JsonEncoder()]);
$this->
assertEquals(new Foo(new Bar('baz'
)),
$serializer->
deserialize($jsonData, Foo::
class, 'json'
));
} public function testDeserializeAndSerializeAbstractObjectsWithTheClassMetadataDiscriminatorResolver() { $example =
new AbstractDummyFirstChild('foo-value', 'bar-value'
);
$example->
setQuux(new DummyFirstChildQuux('quux'
));
$loaderMock =
new class() implements ClassMetadataFactoryInterface
{ public function getMetadataFor($value): ClassMetadataInterface
{ if (AbstractDummy::
class === $value) { return new ClassMetadata( AbstractDummy::
class,
new ClassDiscriminatorMapping('type',
[ 'first' => AbstractDummyFirstChild::
class,
'second' => AbstractDummySecondChild::
class,
]) );