You are here

LegacyContainerBuilderTest.php in Service Container 7

File

modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/LegacyContainerBuilderTest.php
View source
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Component\DependencyInjection\Tests;

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

/**
 * @group legacy
 */
class LegacyContainerBuilderTest extends \PHPUnit_Framework_TestCase {
  protected function setUp() {
    $this
      ->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
  }

  /**
   * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
   */
  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');
  }

  /**
   * @covers Symfony\Component\DependencyInjection\ContainerBuilder::createService
   */
  public function testCreateServiceFactoryService() {
    $builder = new ContainerBuilder();
    $builder
      ->register('baz_service')
      ->setFactoryService('baz_factory')
      ->setFactoryMethod('getInstance');
    $builder
      ->register('baz_factory', 'BazClass');
    $this
      ->assertInstanceOf('BazClass', $builder
      ->get('baz_service'));
  }

}

Classes

Namesort descending Description
LegacyContainerBuilderTest @group legacy