1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?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.
- }
- }
|