Version 1
[yaffs-website] / vendor / consolidation / annotated-command / tests / testCommandFileDiscovery.php
diff --git a/vendor/consolidation/annotated-command/tests/testCommandFileDiscovery.php b/vendor/consolidation/annotated-command/tests/testCommandFileDiscovery.php
new file mode 100644 (file)
index 0000000..c03c5ba
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+namespace Consolidation\AnnotatedCommand;
+
+class CommandFileDiscoveryTests extends \PHPUnit_Framework_TestCase
+{
+    function testCommandDiscovery()
+    {
+        $discovery = new CommandFileDiscovery();
+        $discovery
+          ->setSearchPattern('*CommandFile.php')
+          ->setSearchLocations(['alpha']);
+
+        chdir(__DIR__);
+        $commandFiles = $discovery->discover('.', '\Consolidation\TestUtils');
+
+        $commandFilePaths = array_keys($commandFiles);
+        $commandFileNamespaces = array_values($commandFiles);
+
+        // Ensure that the command files that we expected to
+        // find were all found.  We don't find anything in
+        // 'beta' because only 'alpha' is in the search path.
+        $this->assertContains('./src/ExampleCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/ExampleHookAllCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/alpha/AlphaCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/alpha/Inclusive/IncludedCommandFile.php', $commandFilePaths);
+
+        // Make sure that there are no additional items found.
+        $this->assertEquals(4, count($commandFilePaths));
+
+        // Ensure that the command file namespaces that we expected
+        // to be generated all match.
+        $this->assertContains('\Consolidation\TestUtils\ExampleCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\ExampleHookAllCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\alpha\AlphaCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\alpha\Inclusive\IncludedCommandFile', $commandFileNamespaces);
+
+        // We do not need to test for additional namespace items, because we
+        // know that the length of the array_keys must be the same as the
+        // length of the array_values.
+    }
+
+    function testDeepCommandDiscovery()
+    {
+        $discovery = new CommandFileDiscovery();
+        $discovery
+          ->setSearchPattern('*CommandFile.php')
+          ->setSearchDepth(1)
+          ->setSearchLocations([]);
+
+        chdir(__DIR__);
+        $commandFiles = $discovery->discover('.', '\Consolidation\TestUtils');
+
+        $commandFilePaths = array_keys($commandFiles);
+        $commandFileNamespaces = array_values($commandFiles);
+
+        // Ensure that the command files that we expected to
+        // find were all found. We find both 'alpha' and 'beta'
+        // items because the search locations is empty, which
+        // causes the search at the base directory to be deep.
+        // We do not find alpha/Inclusive, though, as the search
+        // depth is only 2, which excludes directories that are
+        // three levels deep.
+        $this->assertContains('./src/ExampleCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/ExampleHookAllCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/alpha/AlphaCommandFile.php', $commandFilePaths);
+        $this->assertContains('./src/beta/BetaCommandFile.php', $commandFilePaths);
+
+        // Make sure that there are no additional items found.
+        $this->assertEquals(4, count($commandFilePaths));
+
+        // Ensure that the command file namespaces that we expected
+        // to be generated all match.
+        $this->assertContains('\Consolidation\TestUtils\ExampleCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\ExampleHookAllCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\alpha\AlphaCommandFile', $commandFileNamespaces);
+        $this->assertContains('\Consolidation\TestUtils\beta\BetaCommandFile', $commandFileNamespaces);
+
+        // We do not need to test for additional namespace items, because we
+        // know that the length of the array_keys must be the same as the
+        // length of the array_values.
+    }
+}