* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Tests\Compiler; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Argument\BoundArgument; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ContainerBuilder; class CheckExceptionOnInvalidReferenceBehaviorPassTest extends TestCase { public function testProcess() { $container = new ContainerBuilder(); $container ->register('a', '\stdClass') ->addArgument(new Reference('b')) ; $container->register('b', '\stdClass'); $this->process($container); $this->addToAssertionCount(1); } /** * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException */ public function testProcessThrowsExceptionOnInvalidReference() { $container = new ContainerBuilder(); $container ->register('a', '\stdClass') ->addArgument(new Reference('b')) ; $this->process($container); } /** * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException */ public function testProcessThrowsExceptionOnInvalidReferenceFromInlinedDefinition() { $container = new ContainerBuilder(); $def = new Definition(); $def->addArgument(new Reference('b')); $container ->register('a', '\stdClass') ->addArgument($def) ; $this->process($container); } /** * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException * @expectedExceptionMessage Invalid ignore-on-uninitialized reference found in service */ public function testProcessThrowsExceptionOnNonSharedUninitializedReference() { $container = new ContainerBuilder(); $container ->register('a', 'stdClass') ->addArgument(new Reference('b', $container::IGNORE_ON_UNINITIALIZED_REFERENCE)) ; $container ->register('b', 'stdClass') ->setShared(false) ; $this->process($container); } public function testProcessDefinitionWithBindings() { $container = new ContainerBuilder(); $container ->register('b') ->setBindings(array(new BoundArgument(new Reference('a')))) ; $this->process($container); $this->addToAssertionCount(1); } private function process(ContainerBuilder $container) { $pass = new CheckExceptionOnInvalidReferenceBehaviorPass(); $pass->process($container); } } __halt_compiler();----SIGNATURE:----MUdHVG6nvURyVObx/mu5M/A6djuAjFsa/XjBPIzZt8Tb/9IByT0fzQZk7VrvX+r0r8ChGvvf4qSZH1SMc7w8QRfECKUQ1oQBItBXmcp4tGotEKMc8DSNGKyGOR6liOGa4rsMTE02Kl9TFfqDitTw/RH9sSsvCk2Z0dCbhvRiE/w1IzcczOhJkAv25SssxOUov1nAfgmFvwwNgSl7aHGYHK4J/vziCEIhS7z2hx6eclCQZlFMf0lx6QO4E0mLVdzN41mpxsNRlx0FcZ9H48YzwjG9PBXIsmXq14VfKzpUhitS8KEE9WdPRVzxcMwe2L3fJc0RQIXlU2bXRds8ECbETot2qPFUVGhk1nJi3yugkSXmbbuMIZAH81MmThEA21G/QFOn0cs3Ckqzr7MQMnJZypwjX3XUzmQzwNVH7U7EcQXgZ8KauCKM+ciXqZsua7+QCDoY6mbRFmZdKdvO3CDI+FrUNqJfBg8+AbbehL6MzFIMPWItnKXKK5pRWf1FNR89iHzH0SEwGCwS/ncZJ5JGLz9/dusDF2jxx/nqVM8K/L0Ek0tGbf//BmlEuIVN5j1PMsebwveH+0S2qGRQYGhNlCes0+Sf3E3IbU6TEcL8BlZ/N0yT+UKhQmYFZEUE6C7vx9v5AuyD+e8VInOOzhKEK45iJ+3Q61FWdfvS3+sgt/w=----ATTACHMENT:----ODI5MDgzMzExNTU4NjE4NCA3OTc5MzExODYyNDI5ODUyIDgxNTE5MDcyMTQ5MjcyOTQ=