You are here

public function LegacyContainerBuilderTest::testCreateServiceFactoryMethod in Service Container 7.2

Same name and namespace in other branches
  1. 7 modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php \Symfony\Component\DependencyInjection\Tests\LegacyContainerBuilderTest::testCreateServiceFactoryMethod()

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

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php, line 30

Class

LegacyContainerBuilderTest
@group legacy

Namespace

Symfony\Component\DependencyInjection\Tests

Code

public function testCreateServiceFactoryMethod() {
  $builder = new ContainerBuilder();
  $builder
    ->register('bar', 'stdClass');
  $builder
    ->register('foo1', 'Bar\\FooClass')
    ->setFactoryClass('Bar\\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');
}