630535dea7a27578027c50d9c1525f4bc7f50dda
[yaffs-website] / web / core / modules / serialization / tests / src / Unit / CompilerPass / RegisterSerializationClassesCompilerPassTest.php
1 <?php
2
3 namespace Drupal\Tests\serialization\Unit\CompilerPass;
4
5 use Drupal\Core\DependencyInjection\ContainerBuilder;
6 use Drupal\serialization\RegisterSerializationClassesCompilerPass;
7 use Symfony\Component\DependencyInjection\Definition;
8 use Symfony\Component\Serializer\Serializer;
9
10 /**
11  * @coversDefaultClass \Drupal\serialization\RegisterSerializationClassesCompilerPass
12  * @group serialization
13  */
14 class RegisterSerializationClassesCompilerPassTest extends \PHPUnit_Framework_TestCase {
15
16   /**
17    * @covers ::process
18    */
19   public function testEncoders() {
20     $container = new ContainerBuilder();
21     $container->setDefinition('serializer', new Definition(Serializer::class, [[], []]));
22
23     $definition = new Definition('TestClass');
24     $definition->addTag('encoder', ['format' => 'xml']);
25     $definition->addTag('_provider', ['provider' => 'test_provider_a']);
26     $container->setDefinition('encoder_1', $definition);
27
28     $definition = new Definition('TestClass');
29     $definition->addTag('encoder', ['format' => 'json']);
30     $definition->addTag('_provider', ['provider' => 'test_provider_a']);
31     $container->setDefinition('encoder_2', $definition);
32
33     $definition = new Definition('TestClass');
34     $definition->addTag('encoder', ['format' => 'hal_json']);
35     $definition->addTag('_provider', ['provider' => 'test_provider_b']);
36     $container->setDefinition('encoder_3', $definition);
37
38     $compiler_pass = new RegisterSerializationClassesCompilerPass();
39     $compiler_pass->process($container);
40
41     $this->assertEquals(['xml', 'json', 'hal_json'], $container->getParameter('serializer.formats'));
42     $this->assertEquals(['xml' => 'test_provider_a', 'json' => 'test_provider_a', 'hal_json' => 'test_provider_b'], $container->getParameter('serializer.format_providers'));
43   }
44
45 }