3 namespace Friendica\Test\src\Core\Console;
5 use Friendica\App\Mode;
6 use Friendica\Core\Console\Config;
9 * @runTestsInSeparateProcesses
10 * @preserveGlobalState disabled
13 class ConfigConsoleTest extends ConsoleTest
15 protected function setUp()
19 $this->mockApp($this->root);
21 \Mockery::getConfiguration()->setConstantsMap([
23 'DBCONFIGAVAILABLE' => 0
28 ->shouldReceive('has')
33 function testSetGetKeyValue() {
35 ->shouldReceive('set')
36 ->with('config', 'test', 'now')
40 ->shouldReceive('get')
41 ->with('config', 'test')
45 $console = new Config($this->consoleArgv);
46 $console->setArgument(0, 'config');
47 $console->setArgument(1, 'test');
48 $console->setArgument(2, 'now');
49 $txt = $this->dumpExecute($console);
50 $this->assertEquals("config.test <= now\n", $txt);
53 ->shouldReceive('get')
54 ->with('config', 'test')
58 $console = new Config($this->consoleArgv);
59 $console->setArgument(0, 'config');
60 $console->setArgument(1, 'test');
61 $txt = $this->dumpExecute($console);
62 $this->assertEquals("config.test => now\n", $txt);
65 ->shouldReceive('get')
66 ->with('config', 'test')
70 $console = new Config($this->consoleArgv);
71 $console->setArgument(0, 'config');
72 $console->setArgument(1, 'test');
73 $txt = $this->dumpExecute($console);
74 $this->assertEquals("config.test => \n", $txt);
77 function testSetArrayValue() {
78 $testArray = [1, 2, 3];
80 ->shouldReceive('get')
81 ->with('config', 'test')
82 ->andReturn($testArray)
85 $console = new Config($this->consoleArgv);
86 $console->setArgument(0, 'config');
87 $console->setArgument(1, 'test');
88 $console->setArgument(2, 'now');
89 $txt = $this->dumpExecute($console);
91 $this->assertEquals("[Error] config.test is an array and can't be set using this command.\n", $txt);
94 function testTooManyArguments() {
95 $console = new Config($this->consoleArgv);
96 $console->setArgument(0, 'config');
97 $console->setArgument(1, 'test');
98 $console->setArgument(2, 'it');
99 $console->setArgument(3, 'now');
100 $txt = $this->dumpExecute($console);
101 $assertion = '[Warning] Too many arguments';
102 $firstline = substr($txt, 0, strlen($assertion));
103 $this->assertEquals($assertion, $firstline);
106 function testVerbose() {
108 ->shouldReceive('get')
112 $console = new Config($this->consoleArgv);
113 $console->setArgument(0, 'test');
114 $console->setArgument(1, 'it');
115 $console->setOption('v', 1);
116 $executable = $this->consoleArgv[0];
118 Executable: {$executable}
119 Class: Friendica\Core\Console\Config
130 $txt = $this->dumpExecute($console);
131 $this->assertEquals($assertion, $txt);
134 function testUnableToSet() {
136 ->shouldReceive('set')
137 ->with('test', 'it', 'now')
141 ->shouldReceive('get')
145 $console = new Config();
146 $console->setArgument(0, 'test');
147 $console->setArgument(1, 'it');
148 $console->setArgument(2, 'now');
149 $txt = $this->dumpExecute($console);
150 $this->assertSame("Unable to set test.it\n", $txt);
153 public function testGetHelp()
155 // Usable to purposely fail if new commands are added without taking tests into account
157 console config - Manage site configuration
159 bin/console config [-h|--help|-?] [-v]
160 bin/console config <category> [-h|--help|-?] [-v]
161 bin/console config <category> <key> [-h|--help|-?] [-v]
162 bin/console config <category> <key> <value> [-h|--help|-?] [-v]
166 Lists all config values
168 bin/console config <category>
169 Lists all config values in the provided category
171 bin/console config <category> <key>
172 Shows the value of the provided key in the category
174 bin/console config <category> <key> <value>
175 Sets the value of the provided key in the category
178 Setting config entries which are manually set in config/local.config.php may result in
179 conflict between database settings and the manual startup settings.
182 -h|--help|-? Show help information
183 -v Show more debug information.
186 $console = new Config($this->consoleArgv);
187 $console->setOption('help', true);
189 $txt = $this->dumpExecute($console);
191 $this->assertEquals($txt, $theHelp);