Yaffs site version 1.1
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Compiler / ResolveParameterPlaceHoldersPassTest.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\ResolveParameterPlaceHoldersPass;
16 use Symfony\Component\DependencyInjection\ContainerBuilder;
17
18 class ResolveParameterPlaceHoldersPassTest extends TestCase
19 {
20     private $compilerPass;
21     private $container;
22     private $fooDefinition;
23
24     protected function setUp()
25     {
26         $this->compilerPass = new ResolveParameterPlaceHoldersPass();
27         $this->container = $this->createContainerBuilder();
28         $this->compilerPass->process($this->container);
29         $this->fooDefinition = $this->container->getDefinition('foo');
30     }
31
32     public function testClassParametersShouldBeResolved()
33     {
34         $this->assertSame('Foo', $this->fooDefinition->getClass());
35     }
36
37     public function testFactoryParametersShouldBeResolved()
38     {
39         $this->assertSame(array('FooFactory', 'getFoo'), $this->fooDefinition->getFactory());
40     }
41
42     public function testArgumentParametersShouldBeResolved()
43     {
44         $this->assertSame(array('bar', 'baz'), $this->fooDefinition->getArguments());
45     }
46
47     public function testMethodCallParametersShouldBeResolved()
48     {
49         $this->assertSame(array(array('foobar', array('bar', 'baz'))), $this->fooDefinition->getMethodCalls());
50     }
51
52     public function testPropertyParametersShouldBeResolved()
53     {
54         $this->assertSame(array('bar' => 'baz'), $this->fooDefinition->getProperties());
55     }
56
57     public function testFileParametersShouldBeResolved()
58     {
59         $this->assertSame('foo.php', $this->fooDefinition->getFile());
60     }
61
62     public function testAliasParametersShouldBeResolved()
63     {
64         $this->assertSame('foo', $this->container->getAlias('bar')->__toString());
65     }
66
67     private function createContainerBuilder()
68     {
69         $containerBuilder = new ContainerBuilder();
70
71         $containerBuilder->setParameter('foo.class', 'Foo');
72         $containerBuilder->setParameter('foo.factory.class', 'FooFactory');
73         $containerBuilder->setParameter('foo.arg1', 'bar');
74         $containerBuilder->setParameter('foo.arg2', 'baz');
75         $containerBuilder->setParameter('foo.method', 'foobar');
76         $containerBuilder->setParameter('foo.property.name', 'bar');
77         $containerBuilder->setParameter('foo.property.value', 'baz');
78         $containerBuilder->setParameter('foo.file', 'foo.php');
79         $containerBuilder->setParameter('alias.id', 'bar');
80
81         $fooDefinition = $containerBuilder->register('foo', '%foo.class%');
82         $fooDefinition->setFactory(array('%foo.factory.class%', 'getFoo'));
83         $fooDefinition->setArguments(array('%foo.arg1%', '%foo.arg2%'));
84         $fooDefinition->addMethodCall('%foo.method%', array('%foo.arg1%', '%foo.arg2%'));
85         $fooDefinition->setProperty('%foo.property.name%', '%foo.property.value%');
86         $fooDefinition->setFile('%foo.file%');
87
88         $containerBuilder->setAlias('%alias.id%', 'foo');
89
90         return $containerBuilder;
91     }
92 }