Файл: symfony-2.7/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/Dumper/PhpDumperTest.php
Строк: 98
<?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 SymfonyBridgeProxyManagerTestsLazyProxyDumper;
use SymfonyBridgeProxyManagerLazyProxyPhpDumperProxyDumper;
use SymfonyComponentDependencyInjectionContainerBuilder;
use SymfonyComponentDependencyInjectionDumperPhpDumper;
/**
* Integration tests for {@see SymfonyComponentDependencyInjectionDumperPhpDumper} combined
* with the ProxyManager bridge.
*
* @author Marco Pivetta <ocramius@gmail.com>
*/
class PhpDumperTest extends PHPUnit_Framework_TestCase
{
public function testDumpContainerWithProxyService()
{
$container = new ContainerBuilder();
$container->register('foo', 'stdClass');
$container->getDefinition('foo')->setLazy(true);
$container->compile();
$dumper = new PhpDumper($container);
$dumper->setProxyDumper(new ProxyDumper());
$dumpedString = $dumper->dump();
$this->assertStringMatchesFormatFile(
__DIR__.'/../Fixtures/php/lazy_service_structure.txt',
$dumpedString,
'->dump() does generate proxy lazy loading logic.'
);
}
/**
* Verifies that the generated container retrieves the same proxy instance on multiple subsequent requests.
*/
public function testDumpContainerWithProxyServiceWillShareProxies()
{
require_once __DIR__.'/../Fixtures/php/lazy_service.php';
$container = new LazyServiceProjectServiceContainer();
/* @var $proxy stdClass_c1d194250ee2e2b7d2eab8b8212368a8 */
$proxy = $container->get('foo');
$this->assertInstanceOf('stdClass_c1d194250ee2e2b7d2eab8b8212368a8', $proxy);
$this->assertSame($proxy, $container->get('foo'));
$this->assertFalse($proxy->isProxyInitialized());
$proxy->initializeProxy();
$this->assertTrue($proxy->isProxyInitialized());
$this->assertSame($proxy, $container->get('foo'));
}
}