10
10
use Magento \MagentoCloud \App \Logger \Gelf \HandlerFactory as GelfHandlerFactory ;
11
11
use Magento \MagentoCloud \App \Logger \HandlerFactory ;
12
12
use Magento \MagentoCloud \App \Logger \LevelResolver ;
13
+ use Magento \MagentoCloud \Config \GlobalSection ;
13
14
use Magento \MagentoCloud \Config \Log as LogConfig ;
14
15
use Monolog \Handler \HandlerInterface ;
15
16
use Monolog \Handler \NativeMailerHandler ;
18
19
use Monolog \Handler \SyslogHandler ;
19
20
use Monolog \Handler \SyslogUdpHandler ;
20
21
use Monolog \Logger ;
22
+ use PHPUnit \Framework \MockObject \MockObject ;
21
23
use PHPUnit \Framework \TestCase ;
22
- use PHPUnit_Framework_MockObject_MockObject as Mock ;
23
24
24
25
/**
25
26
* @inheritdoc
29
30
class HandlerFactoryTest extends TestCase
30
31
{
31
32
/**
32
- * @var LevelResolver|Mock
33
+ * @var LevelResolver|MockObject
33
34
*/
34
35
private $ levelResolverMock ;
35
36
36
37
/**
37
- * @var LogConfig|Mock
38
+ * @var LogConfig|MockObject
38
39
*/
39
40
private $ logConfigMock ;
40
41
41
42
/**
42
- * @var Repository|Mock
43
+ * @var Repository|MockObject
43
44
*/
44
45
private $ repositoryMock ;
45
46
46
47
/**
47
- * @var GelfHandlerFactory|Mock
48
+ * @var GelfHandlerFactory|MockObject
48
49
*/
49
50
private $ gelfHandlerFactoryMock ;
50
51
52
+ /**
53
+ * @var GlobalSection|MockObject
54
+ */
55
+ private $ globalConfigMock ;
56
+
51
57
/**
52
58
* @var HandlerFactory
53
59
*/
@@ -62,11 +68,13 @@ protected function setUp()
62
68
$ this ->logConfigMock = $ this ->createMock (LogConfig::class);
63
69
$ this ->repositoryMock = $ this ->createMock (Repository::class);
64
70
$ this ->gelfHandlerFactoryMock = $ this ->createMock (GelfHandlerFactory::class);
71
+ $ this ->globalConfigMock = $ this ->createMock (GlobalSection::class);
65
72
66
73
$ this ->handlerFactory = new HandlerFactory (
67
74
$ this ->levelResolverMock ,
68
75
$ this ->logConfigMock ,
69
- $ this ->gelfHandlerFactoryMock
76
+ $ this ->gelfHandlerFactoryMock ,
77
+ $ this ->globalConfigMock
70
78
);
71
79
}
72
80
@@ -128,23 +136,38 @@ public function testCreateGelfHandler()
128
136
public function testCreate (
129
137
string $ handler ,
130
138
array $ repositoryMockReturnMap ,
131
- string $ expectedClass
139
+ $ minLevelOverride ,
140
+ string $ expectedClass ,
141
+ int $ expectedLevel
132
142
) {
133
143
$ this ->logConfigMock ->expects ($ this ->once ())
134
144
->method ('get ' )
135
145
->with ($ handler )
136
146
->willReturn ($ this ->repositoryMock );
137
147
$ this ->repositoryMock ->method ('get ' )
138
148
->willReturnMap ($ repositoryMockReturnMap );
149
+ $ this ->globalConfigMock ->expects ($ this ->once ())
150
+ ->method ('get ' )
151
+ ->with (GlobalSection::VAR_MIN_LOGGING_LEVEL )
152
+ ->willReturn ($ minLevelOverride );
153
+ $ this ->levelResolverMock
154
+ ->method ('resolve ' )
155
+ ->willReturnMap ([
156
+ [LogConfig::LEVEL_NOTICE , Logger::NOTICE ],
157
+ [LogConfig::LEVEL_INFO , Logger::INFO ],
158
+ [LogConfig::LEVEL_WARNING , Logger::WARNING ],
159
+ ]);
139
160
140
161
$ handlerInstance = $ this ->handlerFactory ->create ($ handler );
141
162
142
163
$ this ->assertInstanceOf (HandlerInterface::class, $ handlerInstance );
143
164
$ this ->assertInstanceOf ($ expectedClass , $ handlerInstance );
165
+ $ this ->assertSame ($ expectedLevel , $ handlerInstance ->getLevel ());
144
166
}
145
167
146
168
/**
147
169
* @return array
170
+ * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
148
171
*/
149
172
public function createDataProvider ()
150
173
{
@@ -156,7 +179,19 @@ public function createDataProvider()
156
179
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
157
180
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
158
181
],
182
+ 'minLevelOverride ' => '' ,
183
+ 'expectedClass ' => StreamHandler::class,
184
+ 'expectedLevel ' => Logger::INFO ,
185
+ ],
186
+ [
187
+ 'handler ' => HandlerFactory::HANDLER_STREAM ,
188
+ 'repositoryMockReturnMap ' => [
189
+ ['stream ' , null , 'php://stdout ' ],
190
+ ['min_level ' , LogConfig::LEVEL_WARNING , LogConfig::LEVEL_WARNING ],
191
+ ],
192
+ 'minLevelOverride ' => LogConfig::LEVEL_WARNING ,
159
193
'expectedClass ' => StreamHandler::class,
194
+ 'expectedLevel ' => Logger::WARNING ,
160
195
],
161
196
[
162
197
'handler ' => HandlerFactory::HANDLER_FILE ,
@@ -165,7 +200,9 @@ public function createDataProvider()
165
200
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
166
201
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
167
202
],
203
+ 'minLevelOverride ' => '' ,
168
204
'expectedClass ' => StreamHandler::class,
205
+ 'expectedLevel ' => Logger::INFO ,
169
206
],
170
207
[
171
208
'handler ' => HandlerFactory::HANDLER_SLACK ,
@@ -176,7 +213,21 @@ public function createDataProvider()
176
213
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
177
214
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
178
215
],
216
+ 'minLevelOverride ' => '' ,
179
217
'expectedClass ' => SlackHandler::class,
218
+ 'expectedLevel ' => Logger::NOTICE ,
219
+ ],
220
+ [
221
+ 'handler ' => HandlerFactory::HANDLER_SLACK ,
222
+ 'repositoryMockReturnMap ' => [
223
+ ['token ' , null , 'someToken ' ],
224
+ ['channel ' , 'general ' , 'someChannel ' ],
225
+ ['username ' , 'Slack Log Notifier ' , 'someUser ' ],
226
+ ['min_level ' , LogConfig::LEVEL_WARNING , LogConfig::LEVEL_WARNING ],
227
+ ],
228
+ 'minLevelOverride ' => LogConfig::LEVEL_WARNING ,
229
+ 'expectedClass ' => SlackHandler::class,
230
+ 'expectedLevel ' => Logger::WARNING ,
180
231
],
181
232
[
182
233
'handler ' => HandlerFactory::HANDLER_EMAIL ,
@@ -187,7 +238,9 @@ public function createDataProvider()
187
238
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
188
239
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
189
240
],
241
+ 'minLevelOverride ' => '' ,
190
242
'expectedClass ' => NativeMailerHandler::class,
243
+ 'expectedLevel ' => Logger::NOTICE ,
191
244
],
192
245
[
193
246
'handler ' => HandlerFactory::HANDLER_SYSLOG ,
@@ -199,7 +252,9 @@ public function createDataProvider()
199
252
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
200
253
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
201
254
],
255
+ 'minLevelOverride ' => '' ,
202
256
'expectedClass ' => SyslogHandler::class,
257
+ 'expectedLevel ' => Logger::NOTICE ,
203
258
],
204
259
[
205
260
'handler ' => HandlerFactory::HANDLER_SYSLOG_UDP ,
@@ -212,8 +267,10 @@ public function createDataProvider()
212
267
['min_level ' , LogConfig::LEVEL_NOTICE , LogConfig::LEVEL_NOTICE ],
213
268
['min_level ' , LogConfig::LEVEL_INFO , LogConfig::LEVEL_INFO ],
214
269
],
270
+ 'minLevelOverride ' => '' ,
215
271
'expectedClass ' => SyslogUdpHandler::class,
216
- ]
272
+ 'expectedLevel ' => Logger::NOTICE ,
273
+ ],
217
274
];
218
275
}
219
276
}
0 commit comments