* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Tests\Normalizer; use PHPUnit\Framework\TestCase; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; use Symfony\Component\Serializer\SerializerInterface; class ArrayDenormalizerTest extends TestCase { /** * @var ArrayDenormalizer */ private $denormalizer; /** * @var SerializerInterface|\PHPUnit_Framework_MockObject_MockObject */ private $serializer; protected function setUp() { $this->serializer = $this->getMockBuilder('Symfony\Component\Serializer\Serializer')->getMock(); $this->denormalizer = new ArrayDenormalizer(); $this->denormalizer->setSerializer($this->serializer); } public function testDenormalize() { $this->serializer->expects($this->at(0)) ->method('denormalize') ->with(array('foo' => 'one', 'bar' => 'two')) ->will($this->returnValue(new ArrayDummy('one', 'two'))); $this->serializer->expects($this->at(1)) ->method('denormalize') ->with(array('foo' => 'three', 'bar' => 'four')) ->will($this->returnValue(new ArrayDummy('three', 'four'))); $result = $this->denormalizer->denormalize( array( array('foo' => 'one', 'bar' => 'two'), array('foo' => 'three', 'bar' => 'four'), ), __NAMESPACE__.'\ArrayDummy[]' ); $this->assertEquals( array( new ArrayDummy('one', 'two'), new ArrayDummy('three', 'four'), ), $result ); } public function testSupportsValidArray() { $this->serializer->expects($this->once()) ->method('supportsDenormalization') ->with($this->anything(), __NAMESPACE__.'\ArrayDummy', $this->anything()) ->will($this->returnValue(true)); $this->assertTrue( $this->denormalizer->supportsDenormalization( array( array('foo' => 'one', 'bar' => 'two'), array('foo' => 'three', 'bar' => 'four'), ), __NAMESPACE__.'\ArrayDummy[]' ) ); } public function testSupportsInvalidArray() { $this->serializer->expects($this->any()) ->method('supportsDenormalization') ->will($this->returnValue(false)); $this->assertFalse( $this->denormalizer->supportsDenormalization( array( array('foo' => 'one', 'bar' => 'two'), array('foo' => 'three', 'bar' => 'four'), ), __NAMESPACE__.'\InvalidClass[]' ) ); } public function testSupportsNoArray() { $this->assertFalse( $this->denormalizer->supportsDenormalization( array('foo' => 'one', 'bar' => 'two'), __NAMESPACE__.'\ArrayDummy' ) ); } } class ArrayDummy { public $foo; public $bar; public function __construct($foo, $bar) { $this->foo = $foo; $this->bar = $bar; } } __halt_compiler();----SIGNATURE:----JiSTEqd2PKARC7RyxYAKmupKn0UtXUy41LE0eRJ1BIEhSgBajB9+zbxs3QjoNGinvRoeVkDn0jz1BzGORXxX1rJikU2fsILNFJPIlKXSFWdERlwVevIj5pcu4TJc4qfZE8kufQjJRWjKO8Y1A1Mekjvuq2GeUINzFq+FsGofIj7OwifgWMTOTARorK4SRVeRQ+gDKbGGhok1Pso0GanyYd4EJ4PDk1rSCKLCTP+eL/uf4ItwRdfS1GNFLjVTiH/RSqpxIHtS+x9eYeaA59jgvMSG5i0DcWYQIm/jeP9PK+JHJxVt5j8vW7SiE+j5kEXhejzqf2KFWlyBniHbmF3357sEVQNgJCjp5GHsuzLwbKYjfT8FZN92MZJps87nWr3je+ltQN4wHQfADA9pJH5YOaudv26Fw0wPka9ofaRR/gXRmhDl5CQXYWs8ZkC6LU8xjQhjYa0pqyo30R96lICFkrl3p7s9bXi3dLFRkaTLN7l6sgRHSMMe6v8ObpdIpRUIu7xsLFfk1afwR3O5phA+V910iwi5pl6neDZ8GQ5WQfvKlUHwqUJ5RlIsHOv9384LduMUPWMCj9FavYYBtc1MQAyA4dlOpk6hPzi6jSoJT0ucr37rtZTgcZ6uQdchpfpaekQVjMJBuFZco0qo7dSby1Jqrra11O+RAerIRw3uypg=----ATTACHMENT:----MzQwMjUzMDU1NDI0NDc4OCA5Njc5OTY5MzQ2NjU4NjY5IDExNzE0MjgzMDEzMTU1Mzg=