radarrplexorganizrnginxsonarrdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							107 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							107 lines
						
					
					
						
							3.7 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\Console\Tests\Descriptor; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\Console\Application; | |
| use Symfony\Component\Console\Command\Command; | |
| use Symfony\Component\Console\Input\InputArgument; | |
| use Symfony\Component\Console\Input\InputDefinition; | |
| use Symfony\Component\Console\Input\InputOption; | |
| use Symfony\Component\Console\Output\BufferedOutput; | |
| 
 | |
| abstract class AbstractDescriptorTest extends TestCase | |
| { | |
|     /** @dataProvider getDescribeInputArgumentTestData */ | |
|     public function testDescribeInputArgument(InputArgument $argument, $expectedDescription) | |
|     { | |
|         $this->assertDescription($expectedDescription, $argument); | |
|     } | |
| 
 | |
|     /** @dataProvider getDescribeInputOptionTestData */ | |
|     public function testDescribeInputOption(InputOption $option, $expectedDescription) | |
|     { | |
|         $this->assertDescription($expectedDescription, $option); | |
|     } | |
| 
 | |
|     /** @dataProvider getDescribeInputDefinitionTestData */ | |
|     public function testDescribeInputDefinition(InputDefinition $definition, $expectedDescription) | |
|     { | |
|         $this->assertDescription($expectedDescription, $definition); | |
|     } | |
| 
 | |
|     /** @dataProvider getDescribeCommandTestData */ | |
|     public function testDescribeCommand(Command $command, $expectedDescription) | |
|     { | |
|         $this->assertDescription($expectedDescription, $command); | |
|     } | |
| 
 | |
|     /** @dataProvider getDescribeApplicationTestData */ | |
|     public function testDescribeApplication(Application $application, $expectedDescription) | |
|     { | |
|         // Replaces the dynamic placeholders of the command help text with a static version. | |
|         // The placeholder %command.full_name% includes the script path that is not predictable | |
|         // and can not be tested against. | |
|         foreach ($application->all() as $command) { | |
|             $command->setHelp(str_replace('%command.full_name%', 'app/console %command.name%', $command->getHelp())); | |
|         } | |
| 
 | |
|         $this->assertDescription($expectedDescription, $application); | |
|     } | |
| 
 | |
|     public function getDescribeInputArgumentTestData() | |
|     { | |
|         return $this->getDescriptionTestData(ObjectsProvider::getInputArguments()); | |
|     } | |
| 
 | |
|     public function getDescribeInputOptionTestData() | |
|     { | |
|         return $this->getDescriptionTestData(ObjectsProvider::getInputOptions()); | |
|     } | |
| 
 | |
|     public function getDescribeInputDefinitionTestData() | |
|     { | |
|         return $this->getDescriptionTestData(ObjectsProvider::getInputDefinitions()); | |
|     } | |
| 
 | |
|     public function getDescribeCommandTestData() | |
|     { | |
|         return $this->getDescriptionTestData(ObjectsProvider::getCommands()); | |
|     } | |
| 
 | |
|     public function getDescribeApplicationTestData() | |
|     { | |
|         return $this->getDescriptionTestData(ObjectsProvider::getApplications()); | |
|     } | |
| 
 | |
|     abstract protected function getDescriptor(); | |
| 
 | |
|     abstract protected function getFormat(); | |
| 
 | |
|     protected function getDescriptionTestData(array $objects) | |
|     { | |
|         $data = array(); | |
|         foreach ($objects as $name => $object) { | |
|             $description = file_get_contents(sprintf('%s/../Fixtures/%s.%s', __DIR__, $name, $this->getFormat())); | |
|             $data[] = array($object, $description); | |
|         } | |
| 
 | |
|         return $data; | |
|     } | |
| 
 | |
|     protected function assertDescription($expectedDescription, $describedObject, array $options = array()) | |
|     { | |
|         $output = new BufferedOutput(BufferedOutput::VERBOSITY_NORMAL, true); | |
|         $this->getDescriptor()->describe($output, $describedObject, $options + array('raw_output' => true)); | |
|         $this->assertEquals(trim($expectedDescription), trim(str_replace(PHP_EOL, "\n", $output->fetch()))); | |
|     } | |
| }
 | |
| 
 |