]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/debug/logger/MonologSpiTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / debug / logger / MonologSpiTest.php
1 <?php
2 /**
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16  * http://www.gnu.org/copyleft/gpl.html
17  *
18  * @file
19  */
20
21 namespace MediaWiki\Logger;
22
23 use MediaWikiTestCase;
24 use Wikimedia\TestingAccessWrapper;
25
26 class MonologSpiTest extends MediaWikiTestCase {
27
28         /**
29          * @covers MediaWiki\Logger\MonologSpi::mergeConfig
30          */
31         public function testMergeConfig() {
32                 $base = [
33                         'loggers' => [
34                                 '@default' => [
35                                         'processors' => [ 'constructor' ],
36                                         'handlers' => [ 'constructor' ],
37                                 ],
38                         ],
39                         'processors' => [
40                                 'constructor' => [
41                                         'class' => 'constructor',
42                                 ],
43                         ],
44                         'handlers' => [
45                                 'constructor' => [
46                                         'class' => 'constructor',
47                                         'formatter' => 'constructor',
48                                 ],
49                         ],
50                         'formatters' => [
51                                 'constructor' => [
52                                         'class' => 'constructor',
53                                 ],
54                         ],
55                 ];
56
57                 $fixture = new MonologSpi( $base );
58                 $this->assertSame(
59                         $base,
60                         TestingAccessWrapper::newFromObject( $fixture )->config
61                 );
62
63                 $fixture->mergeConfig( [
64                         'loggers' => [
65                                 'merged' => [
66                                         'processors' => [ 'merged' ],
67                                         'handlers' => [ 'merged' ],
68                                 ],
69                         ],
70                         'processors' => [
71                                 'merged' => [
72                                         'class' => 'merged',
73                                 ],
74                         ],
75                         'magic' => [
76                                 'idkfa' => [ 'xyzzy' ],
77                         ],
78                         'handlers' => [
79                                 'merged' => [
80                                         'class' => 'merged',
81                                         'formatter' => 'merged',
82                                 ],
83                         ],
84                         'formatters' => [
85                                 'merged' => [
86                                         'class' => 'merged',
87                                 ],
88                         ],
89                 ] );
90                 $this->assertSame(
91                         [
92                                 'loggers' => [
93                                         '@default' => [
94                                                 'processors' => [ 'constructor' ],
95                                                 'handlers' => [ 'constructor' ],
96                                         ],
97                                         'merged' => [
98                                                 'processors' => [ 'merged' ],
99                                                 'handlers' => [ 'merged' ],
100                                         ],
101                                 ],
102                                 'processors' => [
103                                         'constructor' => [
104                                                 'class' => 'constructor',
105                                         ],
106                                         'merged' => [
107                                                 'class' => 'merged',
108                                         ],
109                                 ],
110                                 'handlers' => [
111                                         'constructor' => [
112                                                 'class' => 'constructor',
113                                                 'formatter' => 'constructor',
114                                         ],
115                                         'merged' => [
116                                                 'class' => 'merged',
117                                                 'formatter' => 'merged',
118                                         ],
119                                 ],
120                                 'formatters' => [
121                                         'constructor' => [
122                                                 'class' => 'constructor',
123                                         ],
124                                         'merged' => [
125                                                 'class' => 'merged',
126                                         ],
127                                 ],
128                                 'magic' => [
129                                         'idkfa' => [ 'xyzzy' ],
130                                 ],
131                         ],
132                         TestingAccessWrapper::newFromObject( $fixture )->config
133                 );
134         }
135
136 }