C * B -> C */ public function testProcessRemovesAndInlinesRecursively() { $container = new ContainerBuilder(); $a = $container ->register('a') ->addArgument(new Reference('c')) ; $b = $container ->register('b') ->addArgument(new Reference('c')) ->setPublic(false) ; $c = $container ->register('c') ->setPublic(false) ; $container->freeze(); $this->assertTrue($container->hasDefinition('a')); $arguments = $a->getArguments(); $this->assertSame($c, $arguments[0]); $this->assertFalse($container->hasDefinition('b')); $this->assertFalse($container->hasDefinition('c')); } public function testProcessInlinesReferencesToAliases() { $container = new ContainerBuilder(); $a = $container ->register('a') ->addArgument(new Reference('b')) ; $container->setAlias('b', new Alias('c', false)); $c = $container ->register('c') ->setPublic(false) ; $container->freeze(); $this->assertTrue($container->hasDefinition('a')); $arguments = $a->getArguments(); $this->assertSame($c, $arguments[0]); $this->assertFalse($container->hasAlias('b')); $this->assertFalse($container->hasDefinition('c')); } }