Type hint against LinkTarget in WatchedItemStore
[lhc/web/wiklou.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 }