3 namespace Friendica\Test\src\Core\Console;
5 use Friendica\Core\Console\Config;
8 * @runTestsInSeparateProcesses
9 * @preserveGlobalState disabled
12 class ConfigConsoleTest extends ConsoleTest
14 protected function setUp()
18 \Mockery::getConfiguration()->setConstantsMap([
19 'Friendica\App\Mode' => [
20 'DBCONFIGAVAILABLE' => 0
24 $mode = \Mockery::mock('Friendica\App\Mode');
26 ->shouldReceive('has')
30 ->shouldReceive('getMode')
34 function testSetGetKeyValue() {
36 ->shouldReceive('set')
37 ->with('config', 'test', 'now')
41 ->shouldReceive('get')
42 ->with('config', 'test')
46 $console = new Config($this->consoleArgv);
47 $console->setArgument(0, 'config');
48 $console->setArgument(1, 'test');
49 $console->setArgument(2, 'now');
50 $txt = $this->dumpExecute($console);
51 $this->assertEquals("config.test <= now\n", $txt);
54 ->shouldReceive('get')
55 ->with('config', 'test')
59 $console = new Config($this->consoleArgv);
60 $console->setArgument(0, 'config');
61 $console->setArgument(1, 'test');
62 $txt = $this->dumpExecute($console);
63 $this->assertEquals("config.test => now\n", $txt);
66 ->shouldReceive('get')
67 ->with('config', 'test')
71 $console = new Config($this->consoleArgv);
72 $console->setArgument(0, 'config');
73 $console->setArgument(1, 'test');
74 $txt = $this->dumpExecute($console);
75 $this->assertEquals("config.test => \n", $txt);
78 function testSetArrayValue() {
79 $testArray = [1, 2, 3];
81 ->shouldReceive('get')
82 ->with('config', 'test')
83 ->andReturn($testArray)
86 $console = new Config($this->consoleArgv);
87 $console->setArgument(0, 'config');
88 $console->setArgument(1, 'test');
89 $console->setArgument(2, 'now');
90 $txt = $this->dumpExecute($console);
92 $this->assertEquals("[Error] config.test is an array and can't be set using this command.\n", $txt);
95 function testTooManyArguments() {
96 $console = new Config($this->consoleArgv);
97 $console->setArgument(0, 'config');
98 $console->setArgument(1, 'test');
99 $console->setArgument(2, 'it');
100 $console->setArgument(3, 'now');
101 $txt = $this->dumpExecute($console);
102 $assertion = '[Warning] Too many arguments';
103 $firstline = substr($txt, 0, strlen($assertion));
104 $this->assertEquals($assertion, $firstline);
107 function testVerbose() {
109 ->shouldReceive('get')
113 $console = new Config($this->consoleArgv);
114 $console->setArgument(0, 'test');
115 $console->setArgument(1, 'it');
116 $console->setOption('v', 1);
117 $executable = $this->consoleArgv[0];
119 Executable: {$executable}
120 Class: Friendica\Core\Console\Config
131 $txt = $this->dumpExecute($console);
132 $this->assertEquals($assertion, $txt);
135 function testUnableToSet() {
137 ->shouldReceive('set')
138 ->with('test', 'it', 'now')
142 ->shouldReceive('get')
146 $console = new Config();
147 $console->setArgument(0, 'test');
148 $console->setArgument(1, 'it');
149 $console->setArgument(2, 'now');
150 $txt = $this->dumpExecute($console);
151 $this->assertSame("Unable to set test.it\n", $txt);
154 public function testGetHelp()
156 // Usable to purposely fail if new commands are added without taking tests into account
158 console config - Manage site configuration
160 bin/console config [-h|--help|-?] [-v]
161 bin/console config <category> [-h|--help|-?] [-v]
162 bin/console config <category> <key> [-h|--help|-?] [-v]
163 bin/console config <category> <key> <value> [-h|--help|-?] [-v]
167 Lists all config values
169 bin/console config <category>
170 Lists all config values in the provided category
172 bin/console config <category> <key>
173 Shows the value of the provided key in the category
175 bin/console config <category> <key> <value>
176 Sets the value of the provided key in the category
179 Setting config entries which are manually set in config/local.config.php may result in
180 conflict between database settings and the manual startup settings.
183 -h|--help|-? Show help information
184 -v Show more debug information.
187 $console = new Config($this->consoleArgv);
188 $console->setOption('help', true);
190 $txt = $this->dumpExecute($console);
192 $this->assertEquals($txt, $theHelp);