private function injectContainer() { if ($this->container === null && $this->containerConfig === null) { return; } if ($this->container === null) { $this->setContainer($this->builder->getContainer($this->containerConfig)); } foreach ($this->all() as $command) { if ($command instanceof ContainerAwareInterface) { $command->setContainer($this->container); } } }
/** * @test * * @covers LuisMulinari\Consolefull\Application::__construct * @covers LuisMulinari\Consolefull\Application::doRun * @covers LuisMulinari\Consolefull\Application::injectContainer * @covers Symfony\Component\Console\Application::__construct * @covers Symfony\Component\Console\Application::add * @covers Symfony\Component\Console\Application::doRun * @covers Lcobucci\DependencyInjection\ContainerInjector::setContainer * @covers Lcobucci\DependencyInjection\ContainerInjector::getContainer */ public function doRunShouldInjectTheContainerOnContainerAwareCommands() { $input = $this->getMock(InputInterface::class); $output = $this->getMock(OutputInterface::class); $container = $this->getMock(ContainerInterface::class); $this->builder->expects($this->never())->method('getContainer'); $command = new CommandTest(); $command2 = new ContainerAwareCommandTest(); $application = new Application('name', 'version', $this->config, $this->builder); $application->add($command); $application->add($command2); $application->setContainer($container); $application->doRun($input, $output); $this->assertAttributeSame($container, 'container', $command2); }
/** * @test * * @covers Lcobucci\DependencyInjection\ContainerBuilder::__construct * @covers Lcobucci\DependencyInjection\ContainerBuilder::setDefaultConfiguration * @covers Lcobucci\DependencyInjection\ContainerBuilder::createDumpCache * @covers Lcobucci\DependencyInjection\ContainerBuilder::getContainer */ public function getContainerShouldGenerateAndReturnTheContainer() { $builder = new ContainerBuilder($this->config, $this->generator, $this->parameterBag); $container = $this->getMock(ContainerInterface::class); $this->generator->expects($this->once())->method('generate')->with($this->config, $this->isInstanceOf(ConfigCache::class))->willReturn($container); $this->assertSame($container, $builder->getContainer()); }