X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FConsole%2FConfigConsoleTest.php;h=b26b6baf3f853f0112441bd7715162b1793a2fd1;hb=dce86be58efad2db2e4a473bbf8dd4d1f281d5b7;hp=8658097f9a12d96d9d74fad27e3d4c3391deea6e;hpb=c1f99c70b1c7d62120723f3b142e843ba25ab338;p=friendica.git diff --git a/tests/src/Console/ConfigConsoleTest.php b/tests/src/Console/ConfigConsoleTest.php index 8658097f9a..b26b6baf3f 100644 --- a/tests/src/Console/ConfigConsoleTest.php +++ b/tests/src/Console/ConfigConsoleTest.php @@ -1,36 +1,62 @@ . + * + */ namespace Friendica\Test\src\Console; +use Friendica\App; use Friendica\App\Mode; use Friendica\Console\Config; +use Friendica\Core\Config\Capability\IManageConfigValues; +use Mockery; +use Mockery\LegacyMockInterface; +use Mockery\MockInterface; -/** - * @runTestsInSeparateProcesses - * @preserveGlobalState disabled - * @requires PHP 7.0 - */ class ConfigConsoleTest extends ConsoleTest { - protected function setUp() + /** + * @var App\Mode|MockInterface $appMode + */ + private $appMode; + /** @var IManageConfigValues|LegacyMockInterface|MockInterface */ + private $configMock; + + protected function setUp() : void { 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(IManageConfigValues::class); } - function testSetGetKeyValue() { + public function testSetGetKeyValue() + { $this->configMock ->shouldReceive('set') ->with('config', 'test', 'now') @@ -39,15 +65,20 @@ class ConfigConsoleTest extends ConsoleTest $this->configMock ->shouldReceive('get') ->with('config', 'test') - ->andReturn('now') + ->andReturn('old') ->twice(); + $this->configMock + ->shouldReceive('get') + ->with('config', 'test') + ->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'); $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 +86,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 +98,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 => NULL\n", $txt); } - function testSetArrayValue() { + public function testSetArrayValue() + { $testArray = [1, 2, 3]; $this->configMock ->shouldReceive('get') @@ -82,39 +114,58 @@ 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 testSetExistingValue() + { + $this->configMock + ->shouldReceive('get') + ->with('config', 'test') + ->andReturn('now') + ->twice(); + + $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); + + self::assertEquals("[Error] config.test already set to now.\n", $txt); + } + + 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 = << 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 +192,14 @@ CONF; $this->configMock ->shouldReceive('get') ->with('test', 'it') - ->andReturn(NULL) - ->once(); - $console = new Config(); + ->andReturn(null) + ->twice(); + $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 +235,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); } }