* * 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\Compiler\ReplaceAliasByActualDefinitionPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; require_once __DIR__.'/../Fixtures/includes/foo.php'; class ReplaceAliasByActualDefinitionPassTest extends TestCase { public function testProcess() { $container = new ContainerBuilder(); $aDefinition = $container->register('a', '\stdClass'); $aDefinition->setFactory(array(new Reference('b'), 'createA')); $bDefinition = new Definition('\stdClass'); $bDefinition->setPublic(false); $container->setDefinition('b', $bDefinition); $container->setAlias('a_alias', 'a'); $container->setAlias('b_alias', 'b'); $container->setAlias('container', 'service_container'); $this->process($container); $this->assertTrue($container->has('a'), '->process() does nothing to public definitions.'); $this->assertTrue($container->hasAlias('a_alias')); $this->assertFalse($container->has('b'), '->process() removes non-public definitions.'); $this->assertTrue( $container->has('b_alias') && !$container->hasAlias('b_alias'), '->process() replaces alias to actual.' ); $this->assertTrue($container->has('container')); $resolvedFactory = $aDefinition->getFactory(); $this->assertSame('b_alias', (string) $resolvedFactory[0]); } /** * @expectedException \InvalidArgumentException */ public function testProcessWithInvalidAlias() { $container = new ContainerBuilder(); $container->setAlias('a_alias', 'a'); $this->process($container); } protected function process(ContainerBuilder $container) { $pass = new ReplaceAliasByActualDefinitionPass(); $pass->process($container); } } __halt_compiler();----SIGNATURE:----JgNhrX9fNxOI/QYxQ89mqXNBrwXJztD+NpTlcIVUw6/4LRtWuvuXWAtHU0EXDH+viTTFqmSlGD2PyaQ4kvtcAbTjSq1ta2R9E/+xBJb+vupk2k6qtu/XgMIW71UoqdkGDpRinsQrUVu/CCRYE7kN++yS/NbOWhCDZP47LcxgxtfyjJ82TledSn35+1yriaMAhr4hfbKnhQLC3X2RAyspudBvUBXfEsFkEDiowGSMTPZfscGEniTNbUMM+xnfIuk38+5n2/1kmzoo+2m9HQmjeIBlHwK9i22Zs8ZYK/PV0bWewm73DBtuPhWR3NS4/4NkAJFWDfv7exKbo923FBP2FJXSJEEhZfhvEw+8yZ2o52joe1FoJ2seCtstzCbDD8WT5V9fFJ/ea8et/x9bV43SyRWUcqpHaY2YUIcmjjq/qUnyM2/5AS3+7fC5oEPKmLhgyGG7vVHJUfluV1J4yKebIbbdYYF/DYDwjGzaMaA2RRVo8+83ssF6oOEdp2HF0UF1nOgALw25wFvm+u6uvemaYgW0+3GFr2aAtAyvYTsRmee2ZpaSDXybdtNGm+oGf/hvDG1seh0daf+Vvb4UN9AhganwHaUDdBpJxsVaxTTJn9sdz14nOQDDEbw2q1buKNts3OlvPD4bNukIuyqRkwFo7pxC6Qv8zJeZ1OZYgwX4HZM=----ATTACHMENT:----MzU3MDM3MjY0NDUwMDYgODQ5NjA1MTk1ODcwNDg1NiA2MzAwNTM2MTA0NDI4NTQy