* Dariusz RumiƄski * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Tests\Console\Command; use PhpCsFixer\Console\Application; use PhpCsFixer\Console\Command\FixCommand; use PhpCsFixer\Tests\TestCase; use PhpCsFixer\ToolInfo; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Tester\CommandTester; /** * @internal * * @covers \PhpCsFixer\Console\Command\FixCommand */ final class FixCommandTest extends TestCase { public function testEmptyRulesValue() { $this->expectException( \PhpCsFixer\ConfigurationException\InvalidConfigurationException::class ); $this->expectExceptionMessageMatches( '#^Empty rules value is not allowed\.$#' ); $this->doTestExecute( ['--rules' => ''] ); } public function testEmptyFormatValue() { $this->expectException(\PhpCsFixer\ConfigurationException\InvalidConfigurationException::class); $this->expectExceptionMessage('Expected "yes" or "no" for option "using-cache", got "not today".'); $cmdTester = $this->doTestExecute( [ '--using-cache' => 'not today', '--rules' => 'switch_case_semicolon_to_colon', ] ); $cmdTester->getStatusCode(); } /** * @return CommandTester */ private function doTestExecute(array $arguments) { $application = new Application(); $application->add(new FixCommand(new ToolInfo())); $command = $application->find('fix'); $commandTester = new CommandTester($command); $commandTester->execute( array_merge( ['command' => $command->getName()], $this->getDefaultArguments(), $arguments ), [ 'interactive' => false, 'decorated' => false, 'verbosity' => OutputInterface::VERBOSITY_DEBUG, ] ); return $commandTester; } private function getDefaultArguments() { return [ 'path' => [__FILE__], '--path-mode' => 'override', '--allow-risky' => true, '--dry-run' => true, '--using-cache' => 'no', '--show-progress' => 'none', ]; } }