* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Tests\Compiler; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Compiler\ResolveReferencesToAliasesPass; use Symfony\Component\DependencyInjection\ContainerBuilder; class ResolveReferencesToAliasesPassTest extends TestCase { public function testProcess() { $container = new ContainerBuilder(); $container->setAlias('bar', 'foo'); $def = $container ->register('moo') ->setArguments(array(new Reference('bar'))) ; $this->process($container); $arguments = $def->getArguments(); $this->assertEquals('foo', (string) $arguments[0]); } public function testProcessRecursively() { $container = new ContainerBuilder(); $container->setAlias('bar', 'foo'); $container->setAlias('moo', 'bar'); $def = $container ->register('foobar') ->setArguments(array(new Reference('moo'))) ; $this->process($container); $arguments = $def->getArguments(); $this->assertEquals('foo', (string) $arguments[0]); } /** * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException */ public function testAliasCircularReference() { $container = new ContainerBuilder(); $container->setAlias('bar', 'foo'); $container->setAlias('foo', 'bar'); $this->process($container); } public function testResolveFactory() { $container = new ContainerBuilder(); $container->register('factory', 'Factory'); $container->setAlias('factory_alias', new Alias('factory')); $foo = new Definition(); $foo->setFactory(array(new Reference('factory_alias'), 'createFoo')); $container->setDefinition('foo', $foo); $bar = new Definition(); $bar->setFactory(array('Factory', 'createFoo')); $container->setDefinition('bar', $bar); $this->process($container); $resolvedFooFactory = $container->getDefinition('foo')->getFactory(); $resolvedBarFactory = $container->getDefinition('bar')->getFactory(); $this->assertSame('factory', (string) $resolvedFooFactory[0]); $this->assertSame('Factory', (string) $resolvedBarFactory[0]); } protected function process(ContainerBuilder $container) { $pass = new ResolveReferencesToAliasesPass(); $pass->process($container); } } __halt_compiler();----SIGNATURE:----pwsZZ4kCXi1QAXgm7iaiqepxXFxw8jVNNETO4knQsCdTy+tMDYIlGuQS7SekmUPDLoWpCxEHwggI+mKn1SKQqq9FT1pSykQaODx/YPIur8UbWn2jSAmkU9yjc7NH2PwgpjfmJlGxfrrA43sRVFfWzHf4XSKppH1TC0K0ySTk33nzjysb/tcgOfwOpVp2/3TubtnXf404yf9QCkx0TDuJ2g6lqa3nknY8CtqZO5JaSvmklHWb5L4AxmUpY2VHUapLfPNRThfULZ33XW/5L+wPLohEFRXCHOGtUEe2ndpZOI++5yBEHJtTb+TxOqecYYWsnzg00ORZ0dXDj83EI0LZTdhB5TniWG8Zu3kcc7qh6bpS/YdV9ywMSUc30+WrqZSnvOPSdCj7uKBgClPdm336GFrJyk/HCmDoATleMCmaLZShOgub1RoBau/Y4Vou+ZSmQDyxe+kdT7OYN3cpwRclbw0//q1X6R+QcAFLWHmvYb5e8Qh+e2gI8cm2GAzcguWphgBwVYkxgzDuAHzUb73sEpFIr/dDdhTMQ8p48wM0NgYtwfyq4wPi0OUONityg+xPFUKASvMvNKS/CIBJ5aMeKRycZAvhTgabec1BbxV7+N/2GQDLdG6RQk/DnQ1GLGLceOG0VGYEx9L1w9QlKFknx9+hbCer+O59pagI1LUD+1s=----ATTACHMENT:----NzAwNjQxODU1OTE5MTMwOCAyMDI4NTM4NDkzMTg4MjAxIDM4ODYwNDQyNTUzMDIyMzk=