2014-12-23 17:59:20 +00:00
< ? 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 ;
class LegacyContainerBuilderTest extends \PHPUnit_Framework_TestCase
{
2015-01-04 20:27:00 +00:00
public function setUp ()
{
$this -> iniSet ( 'error_reporting' , - 1 & E_USER_DEPRECATED );
}
2014-12-23 17:59:20 +00:00
/**
* @ 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' ));
}
}