CheckDefinitionValidityPassTest.php in Service Container 7
File
modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Tests/Compiler/CheckDefinitionValidityPassTest.php
View source
<?php
namespace Symfony\Component\DependencyInjection\Tests\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CheckDefinitionValidityPass;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class CheckDefinitionValidityPassTest extends \PHPUnit_Framework_TestCase {
public function testProcessDetectsSyntheticNonPublicDefinitions() {
$container = new ContainerBuilder();
$container
->register('a')
->setSynthetic(true)
->setPublic(false);
$this
->process($container);
}
public function testProcessDetectsSyntheticPrototypeDefinitions() {
$container = new ContainerBuilder();
$container
->register('a')
->setSynthetic(true)
->setScope(ContainerInterface::SCOPE_PROTOTYPE);
$this
->process($container);
}
public function testProcessDetectsNonSyntheticNonAbstractDefinitionWithoutClass() {
$container = new ContainerBuilder();
$container
->register('a')
->setSynthetic(false)
->setAbstract(false);
$this
->process($container);
}
public function testLegacyProcessDetectsBothFactorySyntaxesUsed() {
$this
->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
$container = new ContainerBuilder();
$container
->register('a')
->setFactory(array(
'a',
'b',
))
->setFactoryClass('a');
$this
->process($container);
}
public function testProcess() {
$container = new ContainerBuilder();
$container
->register('a', 'class');
$container
->register('b', 'class')
->setSynthetic(true)
->setPublic(true);
$container
->register('c', 'class')
->setAbstract(true);
$container
->register('d', 'class')
->setSynthetic(true);
$this
->process($container);
}
public function testValidTags() {
$container = new ContainerBuilder();
$container
->register('a', 'class')
->addTag('foo', array(
'bar' => 'baz',
));
$container
->register('b', 'class')
->addTag('foo', array(
'bar' => null,
));
$container
->register('c', 'class')
->addTag('foo', array(
'bar' => 1,
));
$container
->register('d', 'class')
->addTag('foo', array(
'bar' => 1.1,
));
$this
->process($container);
}
public function testInvalidTags() {
$container = new ContainerBuilder();
$container
->register('a', 'class')
->addTag('foo', array(
'bar' => array(
'baz' => 'baz',
),
));
$this
->process($container);
}
protected function process(ContainerBuilder $container) {
$pass = new CheckDefinitionValidityPass();
$pass
->process($container);
}
}