You are here

class ReplaceAliasByActualDefinitionPassTest in Service Container 7.2

Same name and namespace in other branches
  1. 7 modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php \Symfony\Component\DependencyInjection\Tests\Compiler\ReplaceAliasByActualDefinitionPassTest

Hierarchy

Expanded class hierarchy of ReplaceAliasByActualDefinitionPassTest

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/Compiler/ReplaceAliasByActualDefinitionPassTest.php, line 18

Namespace

Symfony\Component\DependencyInjection\Tests\Compiler
View source
class ReplaceAliasByActualDefinitionPassTest extends \PHPUnit_Framework_TestCase {
  public function testProcess() {
    $container = new ContainerBuilder();
    $container
      ->register('a', '\\stdClass');
    $bDefinition = new Definition('\\stdClass');
    $bDefinition
      ->setPublic(false);
    $container
      ->setDefinition('b', $bDefinition);
    $container
      ->setAlias('a_alias', 'a');
    $container
      ->setAlias('b_alias', 'b');
    $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.');
  }

  /**
   * @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);
  }

}

Members