ResolveReferencesToAliasesPassTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Symfony\Tests\Component\DependencyInjection\Compiler;
  3. use Symfony\Component\DependencyInjection\Reference;
  4. use Symfony\Component\DependencyInjection\Compiler\ResolveReferencesToAliasesPass;
  5. use Symfony\Component\DependencyInjection\ContainerBuilder;
  6. class ResolveReferencesToAliasesPassTest extends \PHPUnit_Framework_TestCase
  7. {
  8. public function testProcess()
  9. {
  10. $container = new ContainerBuilder();
  11. $container->setAlias('bar', 'foo');
  12. $def = $container
  13. ->register('moo')
  14. ->setArguments(array(new Reference('bar')))
  15. ;
  16. $this->process($container);
  17. $arguments = $def->getArguments();
  18. $this->assertEquals('foo', (string) $arguments[0]);
  19. }
  20. public function testProcessRecursively()
  21. {
  22. $container = new ContainerBuilder();
  23. $container->setAlias('bar', 'foo');
  24. $container->setAlias('moo', 'bar');
  25. $def = $container
  26. ->register('foobar')
  27. ->setArguments(array(new Reference('moo')))
  28. ;
  29. $this->process($container);
  30. $arguments = $def->getArguments();
  31. $this->assertEquals('foo', (string) $arguments[0]);
  32. }
  33. protected function process(ContainerBuilder $container)
  34. {
  35. $pass = new ResolveReferencesToAliasesPass();
  36. $pass->process($container);
  37. }
  38. }