'Name']; } public function getOptions(): array { return []; } public function execute(InputInterface $input, OutputInterface $output): int { $output->info('Hello ' . $input->getArgument('name')); return 0; } }; $adapter = new SymfonyCommandAdapter($phredCommand); $app = new Application(); $app->add($adapter); $app->setAutoExit(false); $input = new ArrayInput(['test:phred', 'name' => 'John']); $output = new BufferedOutput(); $exitCode = $app->run($input, $output); $this->assertEquals(0, $exitCode); $this->assertStringContainsString('Hello John', $output->fetch()); } public function testVerbosityMapping(): void { $symfonyOutput = new BufferedOutput(); $adapter = new SymfonyOutputAdapter($symfonyOutput); $adapter->setVerbosity(0); $this->assertEquals(SymfonyOutputInterface::VERBOSITY_QUIET, $symfonyOutput->getVerbosity()); $adapter->setVerbosity(4); $this->assertEquals(SymfonyOutputInterface::VERBOSITY_DEBUG, $symfonyOutput->getVerbosity()); $symfonyOutput->setVerbosity(SymfonyOutputInterface::VERBOSITY_VERBOSE); $this->assertEquals(2, $adapter->getVerbosity()); } public function testSymfonyHelpers(): void { $symfonyOutput = new BufferedOutput(); $table = new \Symfony\Component\Console\Helper\Table($symfonyOutput); $adapter = new \Phred\TaskerBridges\Symfony\SymfonyTableAdapter($table); $adapter->setHeaders(['ID', 'Name']); $adapter->addRow([1, 'John']); $adapter->render(); $output = $symfonyOutput->fetch(); $this->assertStringContainsString('ID', $output); $this->assertStringContainsString('John', $output); } }