Updating Media dependent modules to versions compatible with core Media.
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Compiler / CheckArgumentsValidityPassTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\DependencyInjection\Tests\Compiler;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\DependencyInjection\Compiler\CheckArgumentsValidityPass;
16 use Symfony\Component\DependencyInjection\ContainerBuilder;
17
18 /**
19  * @author Kévin Dunglas <dunglas@gmail.com>
20  */
21 class CheckArgumentsValidityPassTest extends TestCase
22 {
23     public function testProcess()
24     {
25         $container = new ContainerBuilder();
26         $definition = $container->register('foo');
27         $definition->setArguments(array(null, 1, 'a'));
28         $definition->setMethodCalls(array(
29             array('bar', array('a', 'b')),
30             array('baz', array('c', 'd')),
31         ));
32
33         $pass = new CheckArgumentsValidityPass();
34         $pass->process($container);
35
36         $this->assertEquals(array(null, 1, 'a'), $container->getDefinition('foo')->getArguments());
37         $this->assertEquals(array(
38             array('bar', array('a', 'b')),
39             array('baz', array('c', 'd')),
40         ), $container->getDefinition('foo')->getMethodCalls());
41     }
42
43     /**
44      * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
45      * @dataProvider definitionProvider
46      */
47     public function testException(array $arguments, array $methodCalls)
48     {
49         $container = new ContainerBuilder();
50         $definition = $container->register('foo');
51         $definition->setArguments($arguments);
52         $definition->setMethodCalls($methodCalls);
53
54         $pass = new CheckArgumentsValidityPass();
55         $pass->process($container);
56     }
57
58     public function definitionProvider()
59     {
60         return array(
61             array(array(null, 'a' => 'a'), array()),
62             array(array(1 => 1), array()),
63             array(array(), array(array('baz', array(null, 'a' => 'a')))),
64             array(array(), array(array('baz', array(1 => 1)))),
65         );
66     }
67
68     public function testNoException()
69     {
70         $container = new ContainerBuilder();
71         $definition = $container->register('foo');
72         $definition->setArguments(array(null, 'a' => 'a'));
73
74         $pass = new CheckArgumentsValidityPass(false);
75         $pass->process($container);
76         $this->assertCount(1, $definition->getErrors());
77     }
78 }