]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/Console/ConfigConsoleTest.php
Merge pull request #6581 from nupplaphil/config_refact
[friendica.git] / tests / src / Core / Console / ConfigConsoleTest.php
index 683c7a2e372aa0be5f2eae4f461104e6ec58a648..4ee34917d8a5d9a77fec70dfd6d659218655ea7b 100644 (file)
@@ -3,7 +3,6 @@
 namespace Friendica\Test\src\Core\Console;
 
 use Friendica\Core\Console\Config;
-use \Mockery as m;
 
 /**
  * @runTestsInSeparateProcesses
@@ -16,13 +15,13 @@ class ConfigConsoleTest extends ConsoleTest
        {
                parent::setUp();
 
-               m::getConfiguration()->setConstantsMap([
+               \Mockery::getConfiguration()->setConstantsMap([
                        'Friendica\App\Mode' => [
                                'DBCONFIGAVAILABLE' => 0
                        ]
                ]);
 
-               $mode = m::mock('alias:Friendica\App\Mode');
+               $mode = \Mockery::mock('Friendica\App\Mode');
                $mode
                        ->shouldReceive('has')
                        ->andReturn(true);
@@ -34,7 +33,7 @@ class ConfigConsoleTest extends ConsoleTest
 
        function testSetGetKeyValue() {
                $this->mockConfigSet('config', 'test', 'now', 1);
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'now');
@@ -42,14 +41,14 @@ class ConfigConsoleTest extends ConsoleTest
                $this->assertEquals("config.test <= now\n", $txt);
 
                $this->mockConfigGet('config', 'test', 'now', 1);
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $txt = $this->dumpExecute($console);
                $this->assertEquals("config.test => now\n", $txt);
 
                $this->mockConfigGet('config', 'test', null, 1);
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $txt = $this->dumpExecute($console);
@@ -60,7 +59,7 @@ class ConfigConsoleTest extends ConsoleTest
                $testArray = [1, 2, 3];
                $this->mockConfigGet('config', 'test', $testArray, 1);
 
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'now');
@@ -70,7 +69,7 @@ class ConfigConsoleTest extends ConsoleTest
        }
 
        function testTooManyArguments() {
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'it');
@@ -83,12 +82,13 @@ class ConfigConsoleTest extends ConsoleTest
 
        function testVerbose() {
                $this->mockConfigGet('test', 'it', 'now', 1);
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'test');
                $console->setArgument(1, 'it');
                $console->setOption('v', 1);
+               $executable = $this->consoleArgv[0];
                $assertion = <<<CONF
-Executable: -
+Executable: {$executable}
 Class: Friendica\Core\Console\Config
 Arguments: array (
   0 => 'test',
@@ -113,4 +113,45 @@ CONF;
                $txt = $this->dumpExecute($console);
                $this->assertSame("Unable to set test.it\n", $txt);
        }
+
+       public function testGetHelp()
+       {
+               // Usable to purposely fail if new commands are added without taking tests into account
+               $theHelp = <<<HELP
+console config - Manage site configuration
+Synopsis
+       bin/console config [-h|--help|-?] [-v]
+       bin/console config <category> [-h|--help|-?] [-v]
+       bin/console config <category> <key> [-h|--help|-?] [-v]
+       bin/console config <category> <key> <value> [-h|--help|-?] [-v]
+
+Description
+       bin/console config
+               Lists all config values
+
+       bin/console config <category>
+               Lists all config values in the provided category
+
+       bin/console config <category> <key>
+               Shows the value of the provided key in the category
+
+       bin/console config <category> <key> <value>
+               Sets the value of the provided key in the category
+
+Notes:
+       Setting config entries which are manually set in config/local.config.php may result in
+       conflict between database settings and the manual startup settings.
+
+Options
+    -h|--help|-? Show help information
+    -v           Show more debug information.
+
+HELP;
+               $console = new Config($this->consoleArgv);
+               $console->setOption('help', true);
+
+               $txt = $this->dumpExecute($console);
+
+               $this->assertEquals($txt, $theHelp);
+       }
 }