]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Console/ConfigConsoleTest.php
Merge pull request #9680 from annando/issue-9402
[friendica.git] / tests / src / Console / ConfigConsoleTest.php
index 8658097f9a12d96d9d74fad27e3d4c3391deea6e..51bf04d59a5cf8838f00a82e624b900ea151cd96 100644 (file)
@@ -1,36 +1,62 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Test\src\Console;
 
+use Friendica\App;
 use Friendica\App\Mode;
 use Friendica\Console\Config;
+use Friendica\Core\Config\IConfig;
+use Mockery;
+use Mockery\LegacyMockInterface;
+use Mockery\MockInterface;
 
-/**
- * @runTestsInSeparateProcesses
- * @preserveGlobalState disabled
- * @requires PHP 7.0
- */
 class ConfigConsoleTest extends ConsoleTest
 {
+       /**
+        * @var App\Mode|MockInterface $appMode
+        */
+       private $appMode;
+       /** @var IConfig|LegacyMockInterface|MockInterface */
+       private $configMock;
+
        protected function setUp()
        {
                parent::setUp();
 
-               $this->mockApp($this->root);
-
-               \Mockery::getConfiguration()->setConstantsMap([
+               Mockery::getConfiguration()->setConstantsMap([
                        Mode::class => [
-                               'DBCONFIGAVAILABLE' => 0
-                       ]
+                               'DBCONFIGAVAILABLE' => 0,
+                       ],
                ]);
 
-               $this->mode
-                       ->shouldReceive('has')
-                       ->andReturn(true);
+               $this->appMode = Mockery::mock(App\Mode::class);
+               $this->appMode->shouldReceive('has')
+                                         ->andReturn(true);
 
+               $this->configMock = Mockery::mock(IConfig::class);
        }
 
-       function testSetGetKeyValue() {
+       public function testSetGetKeyValue()
+       {
                $this->configMock
                        ->shouldReceive('set')
                        ->with('config', 'test', 'now')
@@ -42,12 +68,12 @@ class ConfigConsoleTest extends ConsoleTest
                        ->andReturn('now')
                        ->twice();
 
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, $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);
+               self::assertEquals("config.test <= now\n", $txt);
 
                $this->configMock
                        ->shouldReceive('get')
@@ -55,11 +81,11 @@ class ConfigConsoleTest extends ConsoleTest
                        ->andReturn('now')
                        ->once();
 
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, [$this->consoleArgv]);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $txt = $this->dumpExecute($console);
-               $this->assertEquals("config.test => now\n", $txt);
+               self::assertEquals("config.test => now\n", $txt);
 
                $this->configMock
                        ->shouldReceive('get')
@@ -67,14 +93,15 @@ class ConfigConsoleTest extends ConsoleTest
                        ->andReturn(null)
                        ->once();
 
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $txt = $this->dumpExecute($console);
-               $this->assertEquals("config.test => \n", $txt);
+               self::assertEquals("config.test => \n", $txt);
        }
 
-       function testSetArrayValue() {
+       public function testSetArrayValue()
+       {
                $testArray = [1, 2, 3];
                $this->configMock
                        ->shouldReceive('get')
@@ -82,39 +109,41 @@ class ConfigConsoleTest extends ConsoleTest
                        ->andReturn($testArray)
                        ->once();
 
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'now');
                $txt = $this->dumpExecute($console);
 
-               $this->assertEquals("[Error] config.test is an array and can't be set using this command.\n", $txt);
+               self::assertEquals("[Error] config.test is an array and can't be set using this command.\n", $txt);
        }
 
-       function testTooManyArguments() {
-               $console = new Config($this->consoleArgv);
+       public function testTooManyArguments()
+       {
+               $console = new Config($this->appMode, $this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'config');
                $console->setArgument(1, 'test');
                $console->setArgument(2, 'it');
                $console->setArgument(3, 'now');
-               $txt = $this->dumpExecute($console);
+               $txt       = $this->dumpExecute($console);
                $assertion = '[Warning] Too many arguments';
                $firstline = substr($txt, 0, strlen($assertion));
-               $this->assertEquals($assertion, $firstline);
+               self::assertEquals($assertion, $firstline);
        }
 
-       function testVerbose() {
+       public function testVerbose()
+       {
                $this->configMock
                        ->shouldReceive('get')
                        ->with('test', 'it')
                        ->andReturn('now')
                        ->once();
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, $this->consoleArgv);
                $console->setArgument(0, 'test');
                $console->setArgument(1, 'it');
                $console->setOption('v', 1);
                $executable = $this->consoleArgv[0];
-               $assertion = <<<CONF
+               $assertion  = <<<CONF
 Executable: {$executable}
 Class: Friendica\Console\Config
 Arguments: array (
@@ -127,11 +156,12 @@ Options: array (
 test.it => now
 
 CONF;
-               $txt = $this->dumpExecute($console);
-               $this->assertEquals($assertion, $txt);
+               $txt        = $this->dumpExecute($console);
+               self::assertEquals($assertion, $txt);
        }
 
-       function testUnableToSet() {
+       public function testUnableToSet()
+       {
                $this->configMock
                        ->shouldReceive('set')
                        ->with('test', 'it', 'now')
@@ -140,14 +170,14 @@ CONF;
                $this->configMock
                        ->shouldReceive('get')
                        ->with('test', 'it')
-                       ->andReturn(NULL)
+                       ->andReturn(null)
                        ->once();
-               $console = new Config();
+               $console = new Config($this->appMode, $this->configMock, [$this->consoleArgv]);
                $console->setArgument(0, 'test');
                $console->setArgument(1, 'it');
                $console->setArgument(2, 'now');
                $txt = $this->dumpExecute($console);
-               $this->assertSame("Unable to set test.it\n", $txt);
+               self::assertSame("Unable to set test.it\n", $txt);
        }
 
        public function testGetHelp()
@@ -183,11 +213,11 @@ Options
     -v           Show more debug information.
 
 HELP;
-               $console = new Config($this->consoleArgv);
+               $console = new Config($this->appMode, $this->configMock, [$this->consoleArgv]);
                $console->setOption('help', true);
 
                $txt = $this->dumpExecute($console);
 
-               $this->assertEquals($txt, $theHelp);
+               self::assertEquals($txt, $theHelp);
        }
 }