* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Tests\Style; use PHPUnit\Framework\TestCase; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Tester\CommandTester; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\ConsoleOutputInterface; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Style\SymfonyStyle; class SymfonyStyleTest extends TestCase { /** @var Command */ protected $command; /** @var CommandTester */ protected $tester; protected function setUp() { putenv('COLUMNS=121'); $this->command = new Command('sfstyle'); $this->tester = new CommandTester($this->command); } protected function tearDown() { putenv('COLUMNS'); $this->command = null; $this->tester = null; } /** * @dataProvider inputCommandToOutputFilesProvider */ public function testOutputs($inputCommandFilepath, $outputFilepath) { $code = require $inputCommandFilepath; $this->command->setCode($code); $this->tester->execute(array(), array('interactive' => false, 'decorated' => false)); $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true)); } /** * @dataProvider inputInteractiveCommandToOutputFilesProvider */ public function testInteractiveOutputs($inputCommandFilepath, $outputFilepath) { $code = require $inputCommandFilepath; $this->command->setCode($code); $this->tester->execute(array(), array('interactive' => true, 'decorated' => false)); $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true)); } public function inputInteractiveCommandToOutputFilesProvider() { $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle'; return array_map(null, glob($baseDir.'/command/interactive_command_*.php'), glob($baseDir.'/output/interactive_output_*.txt')); } public function inputCommandToOutputFilesProvider() { $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle'; return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt')); } public function testGetErrorStyle() { $input = $this->getMockBuilder(InputInterface::class)->getMock(); $errorOutput = $this->getMockBuilder(OutputInterface::class)->getMock(); $errorOutput ->method('getFormatter') ->willReturn(new OutputFormatter()); $errorOutput ->expects($this->once()) ->method('write'); $output = $this->getMockBuilder(ConsoleOutputInterface::class)->getMock(); $output ->method('getFormatter') ->willReturn(new OutputFormatter()); $output ->expects($this->once()) ->method('getErrorOutput') ->willReturn($errorOutput); $io = new SymfonyStyle($input, $output); $io->getErrorStyle()->write(''); } public function testGetErrorStyleUsesTheCurrentOutputIfNoErrorOutputIsAvailable() { $output = $this->getMockBuilder(OutputInterface::class)->getMock(); $output ->method('getFormatter') ->willReturn(new OutputFormatter()); $style = new SymfonyStyle($this->getMockBuilder(InputInterface::class)->getMock(), $output); $this->assertInstanceOf(SymfonyStyle::class, $style->getErrorStyle()); } } __halt_compiler();----SIGNATURE:----CZo76oz6HYwhZx96evDX35Qz1im6Qr+eJYwrgOiiqvhpbdEvi86Bx1/0iWgdZ4vVMqF8M+Ze3a7AtNTyTfrMiAILqusORusCxEeNq9KHrjyk+djKJpA9lXmxpDfzZuLFw3rcP6DWsKEidzLfa750WZfvfdIe9VwCHOpM0qcCFyCrCaA9hby2IXnTfC9hFKSTzVd6FTy8r9zcFdUCn8SdBhreXHXQCp8316wMYXeNtV3MfnsGaVVruNLvB5brrzHI/Pfdl1HIrLHmjpXEkRlyjCODZ+PoSHcjRaGz4mtlaBL/Was1hWnxNmuykBdaBRoA+uTbz2ztz1DMNrpiv4a5b/lUK6d9tsgE5xrKeBGNNoorC8EVWAyxsZr3dWoRV0we1ojn06ebUv5WEIWNrnyDgadLPxra5x3B7N+ov2CZ6kkoWl30OANwZ9BP/vBA8c8t9FKXzZmIhcAf9tH1Na+0sZgGBPCOOrHFfaT0ZQD6e7aGoI1JUyY6djdUUfBVCXlEfUy2uZLUuV8ABsU8xpLM4pkt2RC94lUBux48nJFAvRHWZ0EhXZBEMUDcXiYSyJSXOW/ZIjN7QI20uViA+yC5oWI2IhqZOLXh3iUHKLaBQ6Ik+2IoEfyyTWsmXO9X4pecX0NGEEEKetmEkb7LKKKr83iP/VQ09T9N+aV6Vg/cYDU=----ATTACHMENT:----MzUwNDAzMDczNjY4MjkgNDczMDkzNDI3OTIyOTIxNiA1OTk3MzgzNjU5NjI3Njg1