]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/Console/ConfigConsoleTest.php
remove currently unused testdata
[friendica.git] / tests / src / Core / Console / ConfigConsoleTest.php
index 683c7a2e372aa0be5f2eae4f461104e6ec58a648..c8deda55557e9da8a4962119bfbc62beb26099aa 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace Friendica\Test\src\Core\Console;
 
+use Friendica\App\Mode;
 use Friendica\Core\Console\Config;
-use \Mockery as m;
 
 /**
  * @runTestsInSeparateProcesses
@@ -16,13 +16,15 @@ class ConfigConsoleTest extends ConsoleTest
        {
                parent::setUp();
 
-               m::getConfiguration()->setConstantsMap([
-                       'Friendica\App\Mode' => [
+               $this->mockApp($this->root);
+
+               \Mockery::getConfiguration()->setConstantsMap([
+                       Mode::class => [
                                'DBCONFIGAVAILABLE' => 0
                        ]
                ]);
 
-               $mode = m::mock('alias:Friendica\App\Mode');
+               $mode = \Mockery::mock(Mode::class);
                $mode
                        ->shouldReceive('has')
                        ->andReturn(true);
@@ -33,23 +35,43 @@ class ConfigConsoleTest extends ConsoleTest
        }
 
        function testSetGetKeyValue() {
-               $this->mockConfigSet('config', 'test', 'now', 1);
-               $console = new Config();
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('config', 'test', 'now')
+                       ->andReturn(true)
+                       ->once();
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('config', 'test')
+                       ->andReturn('now')
+                       ->twice();
+
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'now');
                $txt = $this->dumpExecute($console);
                $this->assertEquals("config.test <= now\n", $txt);
 
-               $this->mockConfigGet('config', 'test', 'now', 1);
-               $console = new Config();
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('config', 'test')
+                       ->andReturn('now')
+                       ->once();
+
+               $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();
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('config', 'test')
+                       ->andReturn(null)
+                       ->once();
+
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $txt = $this->dumpExecute($console);
@@ -58,9 +80,13 @@ class ConfigConsoleTest extends ConsoleTest
 
        function testSetArrayValue() {
                $testArray = [1, 2, 3];
-               $this->mockConfigGet('config', 'test', $testArray, 1);
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('config', 'test')
+                       ->andReturn($testArray)
+                       ->once();
 
-               $console = new Config();
+               $console = new Config($this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'now');
@@ -70,7 +96,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');
@@ -82,13 +108,18 @@ class ConfigConsoleTest extends ConsoleTest
        }
 
        function testVerbose() {
-               $this->mockConfigGet('test', 'it', 'now', 1);
-               $console = new Config();
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('test', 'it')
+                       ->andReturn('now')
+                       ->once();
+               $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',
@@ -105,7 +136,16 @@ CONF;
        }
 
        function testUnableToSet() {
-               $this->mockConfigSet('test', 'it', 'now', 1, false);
+               $this->configMock
+                       ->shouldReceive('set')
+                       ->with('test', 'it', 'now')
+                       ->andReturn(false)
+                       ->once();
+               $this->configMock
+                       ->shouldReceive('get')
+                       ->with('test', 'it')
+                       ->andReturn(NULL)
+                       ->once();
                $console = new Config();
                $console->setArgument(0, 'test');
                $console->setArgument(1, 'it');
@@ -113,4 +153,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);
+       }
 }