public function ContainerBuilderTest::testCreateServiceFactoryMethod

@covers Symfony\Component\DependencyInjection\ContainerBuilder::createService

File

drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php, line 262

Class

ContainerBuilderTest

Namespace

Symfony\Component\DependencyInjection\Tests

Code

public function testCreateServiceFactoryMethod() {
  $builder = new ContainerBuilder();
  $builder
    ->register('bar', 'stdClass');
  $builder
    ->register('foo1', 'FooClass')
    ->setFactoryClass('FooClass')
    ->setFactoryMethod('getInstance')
    ->addArgument(array(
    'foo' => '%value%',
    '%value%' => 'foo',
    new Reference('bar'),
  ));
  $builder
    ->setParameter('value', 'bar');
  $this
    ->assertTrue($builder
    ->get('foo1')->called, '->createService() calls the factory method to create the service instance');
  $this
    ->assertEquals(array(
    'foo' => 'bar',
    'bar' => 'foo',
    $builder
      ->get('bar'),
  ), $builder
    ->get('foo1')->arguments, '->createService() passes the arguments to the factory method');
}