X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fserializer%2FTests%2FSerializerTest.php;fp=vendor%2Fsymfony%2Fserializer%2FTests%2FSerializerTest.php;h=f7f8594cb12bcc166829ac8d566bbc37b171df0e;hp=73feb76d451e6924a6f6a4eba0d82f238902162a;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/vendor/symfony/serializer/Tests/SerializerTest.php b/vendor/symfony/serializer/Tests/SerializerTest.php index 73feb76d4..f7f8594cb 100644 --- a/vendor/symfony/serializer/Tests/SerializerTest.php +++ b/vendor/symfony/serializer/Tests/SerializerTest.php @@ -13,6 +13,10 @@ namespace Symfony\Component\Serializer\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; +use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface; +use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Normalizer\PropertyNormalizer; use Symfony\Component\Serializer\Serializer; @@ -313,6 +317,35 @@ class SerializerTest extends TestCase $serializer->deserialize($jsonData, __NAMESPACE__.'\Model[]', 'json') ); } + + public function testNormalizerAware() + { + $normalizerAware = $this->getMockBuilder(NormalizerAwareInterface::class)->getMock(); + $normalizerAware->expects($this->once()) + ->method('setNormalizer') + ->with($this->isInstanceOf(NormalizerInterface::class)); + + new Serializer(array($normalizerAware)); + } + + public function testDenormalizerAware() + { + $denormalizerAware = $this->getMockBuilder(DenormalizerAwareInterface::class)->getMock(); + $denormalizerAware->expects($this->once()) + ->method('setDenormalizer') + ->with($this->isInstanceOf(DenormalizerInterface::class)); + + new Serializer(array($denormalizerAware)); + } + + public function testDeserializeObjectConstructorWithObjectTypeHint() + { + $jsonData = '{"bar":{"value":"baz"}}'; + + $serializer = new Serializer(array(new ObjectNormalizer()), array('json' => new JsonEncoder())); + + $this->assertEquals(new Foo(new Bar('baz')), $serializer->deserialize($jsonData, Foo::class, 'json')); + } } class Model @@ -358,3 +391,23 @@ class Model return array('title' => $this->title, 'numbers' => $this->numbers); } } + +class Foo +{ + private $bar; + + public function __construct(Bar $bar) + { + $this->bar = $bar; + } +} + +class Bar +{ + private $value; + + public function __construct($value) + { + $this->value = $value; + } +}