You are here

public function MergeExtensionConfigurationPassTest::testExpressionLanguageProviderForwarding 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/MergeExtensionConfigurationPassTest.php \Symfony\Component\DependencyInjection\Tests\Compiler\MergeExtensionConfigurationPassTest::testExpressionLanguageProviderForwarding()

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/Compiler/MergeExtensionConfigurationPassTest.php, line 11

Class

MergeExtensionConfigurationPassTest

Namespace

Symfony\Component\DependencyInjection\Tests\Compiler

Code

public function testExpressionLanguageProviderForwarding() {
  if (true !== class_exists('Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage')) {
    $this
      ->markTestSkipped('The ExpressionLanguage component isn\'t available!');
  }
  $tmpProviders = array();
  $extension = $this
    ->getMock('Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface');
  $extension
    ->expects($this
    ->any())
    ->method('getXsdValidationBasePath')
    ->will($this
    ->returnValue(false));
  $extension
    ->expects($this
    ->any())
    ->method('getNamespace')
    ->will($this
    ->returnValue('http://example.org/schema/dic/foo'));
  $extension
    ->expects($this
    ->any())
    ->method('getAlias')
    ->will($this
    ->returnValue('foo'));
  $extension
    ->expects($this
    ->once())
    ->method('load')
    ->will($this
    ->returnCallback(function (array $config, ContainerBuilder $container) use (&$tmpProviders) {
    $tmpProviders = $container
      ->getExpressionLanguageProviders();
  }));
  $provider = $this
    ->getMock('Symfony\\Component\\ExpressionLanguage\\ExpressionFunctionProviderInterface');
  $container = new ContainerBuilder(new ParameterBag());
  $container
    ->registerExtension($extension);
  $container
    ->prependExtensionConfig('foo', array(
    'bar' => true,
  ));
  $container
    ->addExpressionLanguageProvider($provider);
  $pass = new MergeExtensionConfigurationPass();
  $pass
    ->process($container);
  $this
    ->assertEquals(array(
    $provider,
  ), $tmpProviders);
}