namespace Friendica\Test\src\Core\Console;
+use Friendica\App\Mode;
use Friendica\Core\Console\Config;
-use \Mockery as m;
/**
* @runTestsInSeparateProcesses
{
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);
}
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);
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');
}
function testTooManyArguments() {
- $console = new Config();
+ $console = new Config($this->consoleArgv);
$console->setArgument(0, 'config');
$console->setArgument(1, 'test');
$console->setArgument(2, 'it');
}
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',
}
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');
$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);
+ }
}