]> git.mxchange.org Git - friendica.git/blob - tests/src/Core/Console/ConfigConsoleTest.php
1d5b3a628e2f5a2d219a0870f8d4eb7f16378f30
[friendica.git] / tests / src / Core / Console / ConfigConsoleTest.php
1 <?php
2
3 namespace Friendica\Test\src\Core\Console;
4
5 use Friendica\Core\Console\Config;
6
7 /**
8  * @runTestsInSeparateProcesses
9  * @preserveGlobalState disabled
10  * @requires PHP 7.0
11  */
12 class ConfigConsoleTest extends ConsoleTest
13 {
14         protected function setUp()
15         {
16                 parent::setUp();
17
18                 \Mockery::getConfiguration()->setConstantsMap([
19                         'Friendica\App\Mode' => [
20                                 'DBCONFIGAVAILABLE' => 0
21                         ]
22                 ]);
23
24                 $mode = \Mockery::mock('alias:Friendica\App\Mode');
25                 $mode
26                         ->shouldReceive('has')
27                         ->andReturn(true);
28
29                 $this->app
30                         ->shouldReceive('getMode')
31                         ->andReturn($mode);
32         }
33
34         function testSetGetKeyValue() {
35                 $this->mockConfigSet('config', 'test', 'now', 1);
36                 $console = new Config();
37                 $console->setArgument(0, 'config');
38                 $console->setArgument(1, 'test');
39                 $console->setArgument(2, 'now');
40                 $txt = $this->dumpExecute($console);
41                 $this->assertEquals("config.test <= now\n", $txt);
42
43                 $this->mockConfigGet('config', 'test', 'now', 1);
44                 $console = new Config();
45                 $console->setArgument(0, 'config');
46                 $console->setArgument(1, 'test');
47                 $txt = $this->dumpExecute($console);
48                 $this->assertEquals("config.test => now\n", $txt);
49
50                 $this->mockConfigGet('config', 'test', null, 1);
51                 $console = new Config();
52                 $console->setArgument(0, 'config');
53                 $console->setArgument(1, 'test');
54                 $txt = $this->dumpExecute($console);
55                 $this->assertEquals("config.test => \n", $txt);
56         }
57
58         function testSetArrayValue() {
59                 $testArray = [1, 2, 3];
60                 $this->mockConfigGet('config', 'test', $testArray, 1);
61
62                 $console = new Config();
63                 $console->setArgument(0, 'config');
64                 $console->setArgument(1, 'test');
65                 $console->setArgument(2, 'now');
66                 $txt = $this->dumpExecute($console);
67
68                 $this->assertEquals("[Error] config.test is an array and can't be set using this command.\n", $txt);
69         }
70
71         function testTooManyArguments() {
72                 $console = new Config();
73                 $console->setArgument(0, 'config');
74                 $console->setArgument(1, 'test');
75                 $console->setArgument(2, 'it');
76                 $console->setArgument(3, 'now');
77                 $txt = $this->dumpExecute($console);
78                 $assertion = '[Warning] Too many arguments';
79                 $firstline = substr($txt, 0, strlen($assertion));
80                 $this->assertEquals($assertion, $firstline);
81         }
82
83         function testVerbose() {
84                 $this->mockConfigGet('test', 'it', 'now', 1);
85                 $console = new Config();
86                 $console->setArgument(0, 'test');
87                 $console->setArgument(1, 'it');
88                 $console->setOption('v', 1);
89                 $assertion = <<<CONF
90 Executable: -
91 Class: Friendica\Core\Console\Config
92 Arguments: array (
93   0 => 'test',
94   1 => 'it',
95 )
96 Options: array (
97   'v' => 1,
98 )
99 test.it => now
100
101 CONF;
102                 $txt = $this->dumpExecute($console);
103                 $this->assertEquals($assertion, $txt);
104         }
105
106         function testUnableToSet() {
107                 $this->mockConfigSet('test', 'it', 'now', 1, false);
108                 $console = new Config();
109                 $console->setArgument(0, 'test');
110                 $console->setArgument(1, 'it');
111                 $console->setArgument(2, 'now');
112                 $txt = $this->dumpExecute($console);
113                 $this->assertSame("Unable to set test.it\n", $txt);
114         }
115 }