REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 9.19 KB
Close
/opt/alt/php53/usr/share/pear/test/Serializer/Symfony/Component/Serializer/Tests/SerializerTest.php
Text
Base64
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Tests; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer; use Symfony\Component\Serializer\Normalizer\CustomNormalizer; use Symfony\Component\Serializer\Tests\Fixtures\TraversableDummy; use Symfony\Component\Serializer\Tests\Fixtures\NormalizableTraversableDummy; use Symfony\Component\Serializer\Tests\Normalizer\TestNormalizer; use Symfony\Component\Serializer\Tests\Normalizer\TestDenormalizer; class SerializerTest extends \PHPUnit_Framework_TestCase { /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testNormalizeNoMatch() { $this->serializer = new Serializer(array($this->getMock('Symfony\Component\Serializer\Normalizer\CustomNormalizer'))); $this->serializer->normalize(new \stdClass(), 'xml'); } public function testNormalizeTraversable() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $result = $this->serializer->serialize(new TraversableDummy(), 'json'); $this->assertEquals('{"foo":"foo","bar":"bar"}', $result); } public function testNormalizeGivesPriorityToInterfaceOverTraversable() { $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder())); $result = $this->serializer->serialize(new NormalizableTraversableDummy(), 'json'); $this->assertEquals('{"foo":"normalizedFoo","bar":"normalizedBar"}', $result); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testNormalizeOnDenormalizer() { $this->serializer = new Serializer(array(new TestDenormalizer()), array()); $this->assertTrue($this->serializer->normalize(new \stdClass(), 'json')); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testDenormalizeNoMatch() { $this->serializer = new Serializer(array($this->getMock('Symfony\Component\Serializer\Normalizer\CustomNormalizer'))); $this->serializer->denormalize('foo', 'stdClass'); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testDenormalizeOnNormalizer() { $this->serializer = new Serializer(array(new TestNormalizer()), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->assertTrue($this->serializer->denormalize(json_encode($data), 'stdClass', 'json')); } public function testSerialize() { $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $result = $this->serializer->serialize(Model::fromArray($data), 'json'); $this->assertEquals(json_encode($data), $result); } public function testSerializeScalar() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $result = $this->serializer->serialize('foo', 'json'); $this->assertEquals('"foo"', $result); } public function testSerializeArrayOfScalars() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $data = array('foo', array(5, 3)); $result = $this->serializer->serialize($data, 'json'); $this->assertEquals(json_encode($data), $result); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testSerializeNoEncoder() { $this->serializer = new Serializer(array(), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->serialize($data, 'json'); } /** * @expectedException \Symfony\Component\Serializer\Exception\LogicException */ public function testSerializeNoNormalizer() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->serialize(Model::fromArray($data), 'json'); } public function testDeserialize() { $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $result = $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); $this->assertEquals($data, $result->toArray()); } public function testDeserializeUseCache() { $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); $data = array('title' => 'bar', 'numbers' => array(2, 8)); $result = $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); $this->assertEquals($data, $result->toArray()); } /** * @expectedException \Symfony\Component\Serializer\Exception\LogicException */ public function testDeserializeNoNormalizer() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testDeserializeWrongNormalizer() { $this->serializer = new Serializer(array(new CustomNormalizer()), array('json' => new JsonEncoder())); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); } /** * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException */ public function testDeserializeNoEncoder() { $this->serializer = new Serializer(array(), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->serializer->deserialize(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json'); } public function testDeserializeSupported() { $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->assertTrue($this->serializer->supportsDenormalization(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json')); } public function testDeserializeNotSupported() { $this->serializer = new Serializer(array(new GetSetMethodNormalizer()), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->assertFalse($this->serializer->supportsDenormalization(json_encode($data), 'stdClass', 'json')); } public function testDeserializeNotSupportedMissing() { $this->serializer = new Serializer(array(), array()); $data = array('title' => 'foo', 'numbers' => array(5, 3)); $this->assertFalse($this->serializer->supportsDenormalization(json_encode($data), '\Symfony\Component\Serializer\Tests\Model', 'json')); } public function testEncode() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $data = array('foo', array(5, 3)); $result = $this->serializer->encode($data, 'json'); $this->assertEquals(json_encode($data), $result); } public function testDecode() { $this->serializer = new Serializer(array(), array('json' => new JsonEncoder())); $data = array('foo', array(5, 3)); $result = $this->serializer->decode(json_encode($data), 'json'); $this->assertEquals($data, $result); } } class Model { private $title; private $numbers; public static function fromArray($array) { $model = new self(); if (isset($array['title'])) { $model->setTitle($array['title']); } if (isset($array['numbers'])) { $model->setNumbers($array['numbers']); } return $model; } public function getTitle() { return $this->title; } public function setTitle($title) { $this->title = $title; } public function getNumbers() { return $this->numbers; } public function setNumbers($numbers) { $this->numbers = $numbers; } public function toArray() { return array('title' => $this->title, 'numbers' => $this->numbers); } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 3 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Encoder
DIR
-
drwxr-xr-x
2024-03-03 22:55:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Fixtures
DIR
-
drwxr-xr-x
2024-03-03 22:55:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Normalizer
DIR
-
drwxr-xr-x
2024-03-03 22:55:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SerializerTest.php
9.19 KB
lrw-r--r--
2019-12-18 11:20:42
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).