You are here

class AutoAliasServicePassTest 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/AutoAliasServicePassTest.php \Symfony\Component\DependencyInjection\Tests\Compiler\AutoAliasServicePassTest

Hierarchy

  • class \Symfony\Component\DependencyInjection\Tests\Compiler\AutoAliasServicePassTest extends \Symfony\Component\DependencyInjection\Tests\Compiler\PHPUnit_Framework_TestCase

Expanded class hierarchy of AutoAliasServicePassTest

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/Compiler/AutoAliasServicePassTest.php, line 8

Namespace

Symfony\Component\DependencyInjection\Tests\Compiler
View source
class AutoAliasServicePassTest extends \PHPUnit_Framework_TestCase {

  /**
   * @expectedException \Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException
   */
  public function testProcessWithMissingParameter() {
    $container = new ContainerBuilder();
    $container
      ->register('example')
      ->addTag('auto_alias', array(
      'format' => '%non_existing%.example',
    ));
    $pass = new AutoAliasServicePass();
    $pass
      ->process($container);
  }

  /**
   * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
   */
  public function testProcessWithMissingFormat() {
    $container = new ContainerBuilder();
    $container
      ->register('example')
      ->addTag('auto_alias', array());
    $container
      ->setParameter('existing', 'mysql');
    $pass = new AutoAliasServicePass();
    $pass
      ->process($container);
  }
  public function testProcessWithNonExistingAlias() {
    $container = new ContainerBuilder();
    $container
      ->register('example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassDefault')
      ->addTag('auto_alias', array(
      'format' => '%existing%.example',
    ));
    $container
      ->setParameter('existing', 'mysql');
    $pass = new AutoAliasServicePass();
    $pass
      ->process($container);
    $this
      ->assertEquals('Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassDefault', $container
      ->getDefinition('example')
      ->getClass());
    $this
      ->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassDefault', $container
      ->get('example'));
  }
  public function testProcessWithExistingAlias() {
    $container = new ContainerBuilder();
    $container
      ->register('example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassDefault')
      ->addTag('auto_alias', array(
      'format' => '%existing%.example',
    ));
    $container
      ->register('mysql.example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassMysql');
    $container
      ->setParameter('existing', 'mysql');
    $pass = new AutoAliasServicePass();
    $pass
      ->process($container);
    $this
      ->assertTrue($container
      ->hasAlias('example'));
    $this
      ->assertEquals('mysql.example', $container
      ->getAlias('example'));
    $this
      ->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassMysql', $container
      ->get('example'));
  }
  public function testProcessWithManualAlias() {
    $container = new ContainerBuilder();
    $container
      ->register('example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassDefault')
      ->addTag('auto_alias', array(
      'format' => '%existing%.example',
    ));
    $container
      ->register('mysql.example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassMysql');
    $container
      ->register('mariadb.example', 'Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassMariadb');
    $container
      ->setAlias('example', 'mariadb.example');
    $container
      ->setParameter('existing', 'mysql');
    $pass = new AutoAliasServicePass();
    $pass
      ->process($container);
    $this
      ->assertTrue($container
      ->hasAlias('example'));
    $this
      ->assertEquals('mariadb.example', $container
      ->getAlias('example'));
    $this
      ->assertInstanceOf('Symfony\\Component\\DependencyInjection\\Tests\\Compiler\\ServiceClassMariaDb', $container
      ->get('example'));
  }

}

Members