Security update for Core, with self-updated composer
[yaffs-website] / vendor / consolidation / annotated-command / tests / FullyQualifiedClassCacheTests.php
diff --git a/vendor/consolidation/annotated-command/tests/FullyQualifiedClassCacheTests.php b/vendor/consolidation/annotated-command/tests/FullyQualifiedClassCacheTests.php
new file mode 100644 (file)
index 0000000..dc913e7
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+namespace Consolidation\AnnotatedCommand;
+
+use Consolidation\AnnotatedCommand\AnnotationData;
+use Consolidation\AnnotatedCommand\CommandData;
+use Consolidation\AnnotatedCommand\Hooks\HookManager;
+use Consolidation\AnnotatedCommand\Options\AlterOptionsCommandEvent;
+use Consolidation\AnnotatedCommand\Parser\CommandInfo;
+use Consolidation\TestUtils\ExampleCommandInfoAlterer;
+use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Console\Input\StringInput;
+use Symfony\Component\Console\Output\BufferedOutput;
+use Symfony\Component\Console\Output\OutputInterface;
+
+use \Consolidation\AnnotatedCommand\Parser\Internal\FullyQualifiedClassCache;
+
+class FullyQualifiedClassCacheTests extends \PHPUnit_Framework_TestCase
+{
+    function testFqcn()
+    {
+        $reflectionMethod = new \ReflectionMethod('\Consolidation\TestUtils\alpha\AlphaCommandFile', 'exampleTableTwo');
+        $filename = $reflectionMethod->getFileName();
+
+        $fqcnCache = new FullyQualifiedClassCache();
+
+        $handle = fopen($filename, "r");
+        $this->assertTrue($handle !== false);
+
+        $namespaceName = $this->callProtected($fqcnCache, 'readNamespace', [$handle]);
+
+        $this->assertEquals('Consolidation\TestUtils\alpha', $namespaceName);
+
+        $usedClasses = $this->callProtected($fqcnCache, 'readUseStatements', [$handle]);
+
+        $this->assertTrue(isset($usedClasses['RowsOfFields']));
+        $this->assertEquals('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $usedClasses['RowsOfFields']);
+
+        fclose($handle);
+
+        $fqcn = $fqcnCache->qualify($filename, 'RowsOfFields');
+        $this->assertEquals('Consolidation\OutputFormatters\StructuredData\RowsOfFields', $fqcn);
+
+        $fqcn = $fqcnCache->qualify($filename, 'ClassWithoutUse');
+        $this->assertEquals('Consolidation\TestUtils\alpha\ClassWithoutUse', $fqcn);
+
+        $fqcn = $fqcnCache->qualify($filename, 'ExampleAliasedClass');
+        $this->assertEquals('Consolidation\TestUtils\ExampleCommandFile', $fqcn);
+    }
+
+    function callProtected($object, $method, $args = [])
+    {
+        $r = new \ReflectionMethod($object, $method);
+        $r->setAccessible(true);
+        return $r->invokeArgs($object, $args);
+    }
+}