CheckDefinitionValidityPassTest.php in Zircon Profile 8.0
File
vendor/symfony/dependency-injection/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() {
$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);
}
}