Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / consolidation / annotated-command / tests / FullyQualifiedClassCacheTests.php
1 <?php
2 namespace Consolidation\AnnotatedCommand;
3
4 use Consolidation\AnnotatedCommand\AnnotationData;
5 use Consolidation\AnnotatedCommand\CommandData;
6 use Consolidation\AnnotatedCommand\Hooks\HookManager;
7 use Consolidation\AnnotatedCommand\Options\AlterOptionsCommandEvent;
8 use Consolidation\AnnotatedCommand\Parser\CommandInfo;
9 use Consolidation\TestUtils\ExampleCommandInfoAlterer;
10 use Symfony\Component\Console\Application;
11 use Symfony\Component\Console\Command\Command;
12 use Symfony\Component\Console\Input\InputInterface;
13 use Symfony\Component\Console\Input\ArgvInput;
14 use Symfony\Component\Console\Input\StringInput;
15 use Symfony\Component\Console\Output\BufferedOutput;
16 use Symfony\Component\Console\Output\OutputInterface;
17
18 use \Consolidation\AnnotatedCommand\Parser\Internal\FullyQualifiedClassCache;
19
20 class FullyQualifiedClassCacheTests extends \PHPUnit_Framework_TestCase
21 {
22     function testFqcn()
23     {
24         $reflectionMethod = new \ReflectionMethod('\Consolidation\TestUtils\alpha\AlphaCommandFile', 'exampleTableTwo');
25         $filename = $reflectionMethod->getFileName();
26
27         $fqcnCache = new FullyQualifiedClassCache();
28
29         $handle = fopen($filename, "r");
30         $this->assertTrue($handle !== false);
31
32         $namespaceName = $this->callProtected($fqcnCache, 'readNamespace', [$handle]);
33
34         $this->assertEquals('Consolidation\TestUtils\alpha', $namespaceName);
35
36         $usedClasses = $this->callProtected($fqcnCache, 'readUseStatements', [$handle]);
37
38         $this->assertTrue(isset($usedClasses['RowsOfFields']));
39         $this->assertEquals('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $usedClasses['RowsOfFields']);
40
41         fclose($handle);
42
43         $fqcn = $fqcnCache->qualify($filename, 'RowsOfFields');
44         $this->assertEquals('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $fqcn);
45
46         $fqcn = $fqcnCache->qualify($filename, 'ClassWithoutUse');
47         $this->assertEquals('Consolidation\TestUtils\alpha\ClassWithoutUse', $fqcn);
48
49         $fqcn = $fqcnCache->qualify($filename, 'ExampleAliasedClass');
50         $this->assertEquals('Consolidation\TestUtils\ExampleCommandFile', $fqcn);
51     }
52
53     function callProtected($object, $method, $args = [])
54     {
55         $r = new \ReflectionMethod($object, $method);
56         $r->setAccessible(true);
57         return $r->invokeArgs($object, $args);
58     }
59 }