From d75cc0cb3454d8299a8b9fa3e2c34406b2129b07 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Wed, 31 Oct 2018 11:57:51 +0100 Subject: [PATCH] Bugfixing executable (Mocking the executable) --- .../AutomaticInstallationConsoleTest.php | 12 ++-- tests/src/Core/Console/ConfigConsoleTest.php | 56 ++++++++++++++++--- tests/src/Core/Console/ConsoleTest.php | 5 +- 3 files changed, 59 insertions(+), 14 deletions(-) diff --git a/tests/src/Core/Console/AutomaticInstallationConsoleTest.php b/tests/src/Core/Console/AutomaticInstallationConsoleTest.php index 6fc803f842..bed3a578b6 100644 --- a/tests/src/Core/Console/AutomaticInstallationConsoleTest.php +++ b/tests/src/Core/Console/AutomaticInstallationConsoleTest.php @@ -224,7 +224,7 @@ CONF; ->at($this->root) ->setContent($config); - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('f', 'prepared.ini.php'); $txt = $this->dumpExecute($console); @@ -249,7 +249,7 @@ CONF; $this->assertTrue(putenv('FRIENDICA_LANG=de')); $this->assertTrue(putenv('FRIENDICA_URL_PATH=/friendica')); - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('savedb', true); $txt = $this->dumpExecute($console); @@ -278,7 +278,7 @@ CONF; $this->assertTrue(putenv('FRIENDICA_LANG=de')); $this->assertTrue(putenv('FRIENDICA_URL_PATH=/friendica')); - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $txt = $this->dumpExecute($console); @@ -301,7 +301,7 @@ CONF; $this->mockExistsTable('user', false, 1); $this->mockUpdate([false, true, true], null, 1); - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('dbhost', $this->db_host); $console->setOption('dbuser', $this->db_user); @@ -338,7 +338,7 @@ CONF; { $this->mockConnect(false, 1); - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $txt = $this->dumpExecute($console); @@ -400,7 +400,7 @@ Examples HELP; - $console = new AutomaticInstallation(); + $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('help', true); $txt = $this->dumpExecute($console); diff --git a/tests/src/Core/Console/ConfigConsoleTest.php b/tests/src/Core/Console/ConfigConsoleTest.php index 1d5b3a628e..8f845ae7b0 100644 --- a/tests/src/Core/Console/ConfigConsoleTest.php +++ b/tests/src/Core/Console/ConfigConsoleTest.php @@ -33,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'); @@ -41,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); @@ -59,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'); @@ -69,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'); @@ -82,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 = << 'test', @@ -112,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 = << [-h|--help|-?] [-v] + bin/console config [-h|--help|-?] [-v] + bin/console config [-h|--help|-?] [-v] + +Description + bin/console config + Lists all config values + + bin/console config + Lists all config values in the provided category + + bin/console config + Shows the value of the provided key in the category + + bin/console config + Sets the value of the provided key in the category + +Notes: + Setting config entries which are manually set in config/local.ini.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); + } } diff --git a/tests/src/Core/Console/ConsoleTest.php b/tests/src/Core/Console/ConsoleTest.php index 6b58ccced2..0997269c06 100644 --- a/tests/src/Core/Console/ConsoleTest.php +++ b/tests/src/Core/Console/ConsoleTest.php @@ -13,7 +13,10 @@ abstract class ConsoleTest extends TestCase use VFSTrait; use AppMockTrait; - protected $stdout; + /** + * @var array The default argv for a Console Instance + */ + protected $consoleArgv = [ 'consoleTest.php' ]; protected function setUp() {