Browse Source

Add some test coverage to shell classes.

Bump up the test coverage and ensure that some basic commands/options
exist.
Mark Story 10 years ago
parent
commit
0663264dbf

+ 12 - 12
src/Shell/PluginShell.php

@@ -41,19 +41,19 @@ class PluginShell extends Shell
     public function getOptionParser()
     {
         $parser = parent::getOptionParser();
-        
+
         $parser->description('Plugin Shell perform various tasks related to plugin.')
-                ->addSubcommand('assets', [
-                    'help' => 'Symlink / copy plugin assets to app\'s webroot',
-                    'parser' => $this->Assets->getOptionParser()
-                ])->addSubcommand('load', [
-                    'help' => 'Loads a plugin',
-                    'parser' => $this->Load->getOptionParser(),
-                ])
-                ->addSubcommand('unload', [
-                    'help' => 'Unloads a plugin',
-                    'parser' => $this->Unload->getOptionParser(),
-                ]);
+            ->addSubcommand('assets', [
+                'help' => 'Symlink / copy plugin assets to app\'s webroot',
+                'parser' => $this->Assets->getOptionParser()
+            ])->addSubcommand('load', [
+                'help' => 'Loads a plugin',
+                'parser' => $this->Load->getOptionParser(),
+            ])
+            ->addSubcommand('unload', [
+                'help' => 'Unloads a plugin',
+                'parser' => $this->Unload->getOptionParser(),
+            ]);
 
         return $parser;
     }

+ 54 - 0
tests/TestCase/Shell/PluginShellTest.php

@@ -0,0 +1,54 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link          http://cakephp.org CakePHP(tm) Project
+ * @since         3.1.9
+ * @license       http://www.opensource.org/licenses/mit-license.php MIT License
+ */
+namespace Cake\Test\TestCase\Shell;
+
+use Cake\Cache\Cache;
+use Cake\Datasource\ConnectionManager;
+use Cake\Shell\PluginShell;
+use Cake\TestSuite\TestCase;
+
+/**
+ * PluginShell test.
+ */
+class PluginShellTest extends TestCase
+{
+
+    /**
+     * setup method
+     *
+     * @return void
+     */
+    public function setUp()
+    {
+        parent::setUp();
+        $this->io = $this->getMock('Cake\Console\ConsoleIo');
+        $this->shell = new PluginShell($this->io);
+    }
+
+    /**
+     * Test that the option parser is shaped right.
+     *
+     * @return void
+     */
+    public function testGetOptionParser()
+    {
+        $this->shell->loadTasks();
+        $parser = $this->shell->getOptionParser();
+        $commands = $parser->subcommands();
+        $this->assertArrayHasKey('unload', $commands);
+        $this->assertArrayHasKey('load', $commands);
+        $this->assertArrayHasKey('assets', $commands);
+    }
+}

+ 53 - 0
tests/TestCase/Shell/ServerShellTest.php

@@ -0,0 +1,53 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link          http://cakephp.org CakePHP(tm) Project
+ * @since         3.1.9
+ * @license       http://www.opensource.org/licenses/mit-license.php MIT License
+ */
+namespace Cake\Test\TestCase\Shell;
+
+use Cake\Cache\Cache;
+use Cake\Datasource\ConnectionManager;
+use Cake\Shell\ServerShell;
+use Cake\TestSuite\TestCase;
+
+/**
+ * ServerShell test.
+ */
+class ServerShellTest extends TestCase
+{
+
+    /**
+     * setup method
+     *
+     * @return void
+     */
+    public function setUp()
+    {
+        parent::setUp();
+        $this->io = $this->getMock('Cake\Console\ConsoleIo');
+        $this->shell = new ServerShell($this->io);
+    }
+
+    /**
+     * Test that the option parser is shaped right.
+     *
+     * @return void
+     */
+    public function testGetOptionParser()
+    {
+        $parser = $this->shell->getOptionParser();
+        $options = $parser->options();
+        $this->assertArrayHasKey('host', $options);
+        $this->assertArrayHasKey('port', $options);
+        $this->assertArrayHasKey('document_root', $options);
+    }
+}