1<?php
2
3namespace JMS\SerializerBundle\Tests\DependencyInjection;
4
5use JMS\SerializerBundle\DependencyInjection\Compiler\FormErrorHandlerTranslationDomainPass;
6use JMS\SerializerBundle\DependencyInjection\JMSSerializerExtension;
7use Symfony\Component\DependencyInjection\ContainerBuilder;
8use PHPUnit\Framework\TestCase;
9
10class FormErrorHandlerTranslationDomainPassTest extends TestCase
11{
12    /**
13     * @param array $configs
14     *
15     * @return ContainerBuilder
16     */
17    private function getContainer(array $configs = array())
18    {
19        $loader = new JMSSerializerExtension();
20        $container = new ContainerBuilder();
21
22        $container->setParameter('kernel.debug', true);
23        $container->setParameter('kernel.cache_dir', sys_get_temp_dir() . '/serializer');
24        $container->setParameter('kernel.bundles', array());
25
26        $loader->load(['jms_serializer' => $configs], $container);
27
28        return $container;
29    }
30
31    public function testExistentParameter()
32    {
33        $container = $this->getContainer();
34        $container->setParameter('validator.translation_domain', 'custom_domain');
35
36        $pass = new FormErrorHandlerTranslationDomainPass();
37        $pass->process($container);
38
39        $args = $container->findDefinition('jms_serializer.form_error_handler')->getArguments();
40
41        $this->assertArrayHasKey(1, $args);
42        $this->assertContains('%validator.translation_domain%', $args[1]);
43    }
44
45    public function testNonExistentParameter()
46    {
47        $container = $this->getContainer();
48
49        $pass = new FormErrorHandlerTranslationDomainPass();
50        $pass->process($container);
51
52        $args = $container->findDefinition('jms_serializer.form_error_handler')->getArguments();
53
54        $this->assertArrayNotHasKey(1, $args);
55    }
56}
57