ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
FingersCrossedHandlerTest.php
Go to the documentation of this file.
1<?php
2
3/*
4 * This file is part of the Monolog package.
5 *
6 * (c) Jordi Boggiano <j.boggiano@seld.be>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Monolog\Handler;
13
19
21{
27 public function testHandleBuffers()
28 {
29 $test = new TestHandler();
31 $handler->handle($this->getRecord(Logger::DEBUG));
32 $handler->handle($this->getRecord(Logger::INFO));
33 $this->assertFalse($test->hasDebugRecords());
34 $this->assertFalse($test->hasInfoRecords());
35 $handler->handle($this->getRecord(Logger::WARNING));
36 $handler->close();
37 $this->assertTrue($test->hasInfoRecords());
38 $this->assertTrue(count($test->getRecords()) === 3);
39 }
40
46 {
47 $test = new TestHandler();
49 $handler->handle($this->getRecord(Logger::WARNING));
50 $handler->handle($this->getRecord(Logger::DEBUG));
51 $handler->close();
52 $this->assertTrue($test->hasWarningRecords());
53 $this->assertTrue($test->hasDebugRecords());
54 }
55
62 {
63 $test = new TestHandler();
65 $handler->handle($this->getRecord(Logger::WARNING));
66 $handler->handle($this->getRecord(Logger::DEBUG));
67 $handler->reset();
68 $handler->handle($this->getRecord(Logger::INFO));
69 $handler->close();
70 $this->assertTrue($test->hasWarningRecords());
71 $this->assertTrue($test->hasDebugRecords());
72 $this->assertFalse($test->hasInfoRecords());
73 }
74
80 {
81 $test = new TestHandler();
82 $handler = new FingersCrossedHandler($test, Logger::WARNING, 0, false, false);
83 $handler->handle($this->getRecord(Logger::DEBUG));
84 $handler->handle($this->getRecord(Logger::WARNING));
85 $handler->handle($this->getRecord(Logger::INFO));
86 $handler->close();
87 $this->assertTrue($test->hasWarningRecords());
88 $this->assertTrue($test->hasDebugRecords());
89 $this->assertFalse($test->hasInfoRecords());
90 }
91
96 public function testHandleBufferLimit()
97 {
98 $test = new TestHandler();
100 $handler->handle($this->getRecord(Logger::DEBUG));
101 $handler->handle($this->getRecord(Logger::DEBUG));
102 $handler->handle($this->getRecord(Logger::INFO));
103 $handler->handle($this->getRecord(Logger::WARNING));
104 $this->assertTrue($test->hasWarningRecords());
105 $this->assertTrue($test->hasInfoRecords());
106 $this->assertFalse($test->hasDebugRecords());
107 }
108
113 public function testHandleWithCallback()
114 {
115 $test = new TestHandler();
116 $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) {
117 return $test;
118 });
119 $handler->handle($this->getRecord(Logger::DEBUG));
120 $handler->handle($this->getRecord(Logger::INFO));
121 $this->assertFalse($test->hasDebugRecords());
122 $this->assertFalse($test->hasInfoRecords());
123 $handler->handle($this->getRecord(Logger::WARNING));
124 $this->assertTrue($test->hasInfoRecords());
125 $this->assertTrue(count($test->getRecords()) === 3);
126 }
127
134 {
135 $handler = new FingersCrossedHandler(function ($record, $handler) {
136 return 'foo';
137 });
138 $handler->handle($this->getRecord(Logger::WARNING));
139 }
140
144 public function testIsHandlingAlways()
145 {
146 $test = new TestHandler();
148 $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG)));
149 }
150
157 {
158 $test = new TestHandler();
160 $handler->handle($this->getRecord(Logger::DEBUG));
161 $this->assertFalse($test->hasDebugRecords());
162 $handler->handle($this->getRecord(Logger::WARNING));
163 $this->assertTrue($test->hasDebugRecords());
164 $this->assertTrue($test->hasWarningRecords());
165 }
166
173 {
174 $test = new TestHandler();
176 $handler->handle($this->getRecord(Logger::DEBUG));
177 $this->assertFalse($test->hasDebugRecords());
178 $handler->handle($this->getRecord(Logger::WARNING));
179 $this->assertTrue($test->hasDebugRecords());
180 $this->assertTrue($test->hasWarningRecords());
181 }
182
188 {
189 $test = new TestHandler();
191 $handler->handle($this->getRecord(Logger::DEBUG));
192 $this->assertFalse($test->hasDebugRecords());
193 $handler->activate();
194 $this->assertTrue($test->hasDebugRecords());
195 $handler->handle($this->getRecord(Logger::INFO));
196 $this->assertTrue($test->hasInfoRecords());
197 }
198
204 {
205 $test = new TestHandler();
207 $handler->handle($this->getRecord(Logger::WARNING));
208 $this->assertFalse($test->hasWarningRecords());
209 $record = $this->getRecord(Logger::DEBUG);
210 $record['channel'] = 'othertest';
211 $handler->handle($record);
212 $this->assertTrue($test->hasDebugRecords());
213 $this->assertTrue($test->hasWarningRecords());
214 }
215
221 {
222 $test = new TestHandler();
223 $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug')));
224 $handler->handle($this->getRecord(Logger::WARNING));
225 $this->assertFalse($test->hasWarningRecords());
226 $record = $this->getRecord(Logger::DEBUG);
227 $record['channel'] = 'othertest';
228 $handler->handle($record);
229 $this->assertTrue($test->hasDebugRecords());
230 $this->assertTrue($test->hasWarningRecords());
231 }
232
237 public function testHandleUsesProcessors()
238 {
239 $test = new TestHandler();
241 $handler->pushProcessor(function ($record) {
242 $record['extra']['foo'] = true;
243
244 return $record;
245 });
246 $handler->handle($this->getRecord(Logger::WARNING));
247 $this->assertTrue($test->hasWarningRecords());
248 $records = $test->getRecords();
249 $this->assertTrue($records[0]['extra']['foo']);
250 }
251
255 public function testPassthruOnClose()
256 {
257 $test = new TestHandler();
259 $handler->handle($this->getRecord(Logger::DEBUG));
260 $handler->handle($this->getRecord(Logger::INFO));
261 $handler->close();
262 $this->assertFalse($test->hasDebugRecords());
263 $this->assertTrue($test->hasInfoRecords());
264 }
265
270 {
271 $test = new TestHandler();
273 $handler->handle($this->getRecord(Logger::DEBUG));
274 $handler->handle($this->getRecord(Logger::INFO));
275 $handler->close();
276 $this->assertFalse($test->hasDebugRecords());
277 $this->assertTrue($test->hasInfoRecords());
278 }
279}
$test
Definition: Utf8Test.php:84
An exception for terminatinating execution or to throw for unit testing.
testErrorLevelActivationStrategy()
@covers Monolog\Handler\FingersCrossedHandler::__construct @covers Monolog\Handler\FingersCrossed\Err...
testHandleBuffers()
@covers Monolog\Handler\FingersCrossedHandler::__construct @covers Monolog\Handler\FingersCrossedHand...
testPassthruOnClose()
@covers Monolog\Handler\FingersCrossedHandler::close
testHandleRestartBufferingAfterBeingTriggeredWhenStopBufferingIsDisabled()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testOverrideActivationStrategy()
@covers Monolog\Handler\FingersCrossedHandler::__construct @covers Monolog\Handler\FingersCrossedHand...
testHandleStopsBufferingAfterTrigger()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testHandleWithBadCallbackThrowsException()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testHandleRestartBufferingAfterReset()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testHandleBufferLimit()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testChannelLevelActivationStrategy()
@covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct @covers Monolog\Ha...
testChannelLevelActivationStrategyWithPsrLevels()
@covers Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy::__construct @covers Monolog\Ha...
testIsHandlingAlways()
@covers Monolog\Handler\FingersCrossedHandler::isHandling
testHandleWithCallback()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testPsrLevelPassthruOnClose()
@covers Monolog\Handler\FingersCrossedHandler::close
testErrorLevelActivationStrategyWithPsrLevel()
@covers Monolog\Handler\FingersCrossedHandler::__construct @covers Monolog\Handler\FingersCrossed\Err...
testHandleUsesProcessors()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
Buffers all records until a certain level is reached.
Channel and Error level based monolog activation strategy.
Used for testing purposes.
Definition: TestHandler.php:67
Monolog log channel.
Definition: Logger.php:28
const ERROR
Runtime errors.
Definition: Logger.php:57
const WARNING
Exceptional occurrences that are not errors.
Definition: Logger.php:52
const INFO
Interesting events.
Definition: Logger.php:39
const DEBUG
Detailed debug information.
Definition: Logger.php:32
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
Describes log levels.
Definition: LogLevel.php:9
$handler
$records
Definition: simple_test.php:22