Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\serialization\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
6 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Functional tests for serialization system.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group serialization
|
Chris@0
|
12 */
|
Chris@0
|
13 class SerializationTest extends KernelTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Modules to enable.
|
Chris@0
|
17 *
|
Chris@0
|
18 * @var array
|
Chris@0
|
19 */
|
Chris@0
|
20 public static $modules = ['serialization', 'serialization_test'];
|
Chris@0
|
21
|
Chris@0
|
22 /**
|
Chris@0
|
23 * The serializer service to test.
|
Chris@0
|
24 *
|
Chris@0
|
25 * @var \Symfony\Component\Serializer\SerializerInterface
|
Chris@0
|
26 */
|
Chris@0
|
27 protected $serializer;
|
Chris@0
|
28
|
Chris@0
|
29 protected function setUp() {
|
Chris@0
|
30 parent::setUp();
|
Chris@0
|
31 $this->serializer = $this->container->get('serializer');
|
Chris@0
|
32 }
|
Chris@0
|
33
|
Chris@0
|
34 /**
|
Chris@0
|
35 * Confirms that modules can register normalizers and encoders.
|
Chris@0
|
36 */
|
Chris@0
|
37 public function testSerializerComponentRegistration() {
|
Chris@0
|
38 $object = new \stdClass();
|
Chris@0
|
39 $format = 'serialization_test';
|
Chris@0
|
40 $expected = 'Normalized by SerializationTestNormalizer, Encoded by SerializationTestEncoder';
|
Chris@0
|
41
|
Chris@0
|
42 // Ensure the serialization invokes the expected normalizer and encoder.
|
Chris@0
|
43 $this->assertIdentical($this->serializer->serialize($object, $format), $expected);
|
Chris@0
|
44
|
Chris@0
|
45 // Ensure the serialization fails for an unsupported format.
|
Chris@0
|
46 try {
|
Chris@0
|
47 $this->serializer->serialize($object, 'unsupported_format');
|
Chris@0
|
48 $this->fail('The serializer was expected to throw an exception for an unsupported format, but did not.');
|
Chris@0
|
49 }
|
Chris@0
|
50 catch (UnexpectedValueException $e) {
|
Chris@0
|
51 $this->pass('The serializer threw an exception for an unsupported format.');
|
Chris@0
|
52 }
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 }
|