ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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{
26 public function testHandleBuffers()
27 {
28 $test = new TestHandler();
29 $handler = new FingersCrossedHandler($test);
30 $handler->handle($this->getRecord(Logger::DEBUG));
31 $handler->handle($this->getRecord(Logger::INFO));
32 $this->assertFalse($test->hasDebugRecords());
33 $this->assertFalse($test->hasInfoRecords());
34 $handler->handle($this->getRecord(Logger::WARNING));
35 $handler->close();
36 $this->assertTrue($test->hasInfoRecords());
37 $this->assertTrue(count($test->getRecords()) === 3);
38 }
39
44 {
45 $test = new TestHandler();
46 $handler = new FingersCrossedHandler($test);
47 $handler->handle($this->getRecord(Logger::WARNING));
48 $handler->handle($this->getRecord(Logger::DEBUG));
49 $handler->close();
50 $this->assertTrue($test->hasWarningRecords());
51 $this->assertTrue($test->hasDebugRecords());
52 }
53
59 {
60 $test = new TestHandler();
61 $handler = new FingersCrossedHandler($test);
62 $handler->handle($this->getRecord(Logger::WARNING));
63 $handler->handle($this->getRecord(Logger::DEBUG));
64 $handler->reset();
65 $handler->handle($this->getRecord(Logger::INFO));
66 $handler->close();
67 $this->assertTrue($test->hasWarningRecords());
68 $this->assertTrue($test->hasDebugRecords());
69 $this->assertFalse($test->hasInfoRecords());
70 }
71
76 {
77 $test = new TestHandler();
78 $handler = new FingersCrossedHandler($test, Logger::WARNING, 0, false, false);
79 $handler->handle($this->getRecord(Logger::DEBUG));
80 $handler->handle($this->getRecord(Logger::WARNING));
81 $handler->handle($this->getRecord(Logger::INFO));
82 $handler->close();
83 $this->assertTrue($test->hasWarningRecords());
84 $this->assertTrue($test->hasDebugRecords());
85 $this->assertFalse($test->hasInfoRecords());
86 }
87
91 public function testHandleBufferLimit()
92 {
93 $test = new TestHandler();
95 $handler->handle($this->getRecord(Logger::DEBUG));
96 $handler->handle($this->getRecord(Logger::DEBUG));
97 $handler->handle($this->getRecord(Logger::INFO));
98 $handler->handle($this->getRecord(Logger::WARNING));
99 $this->assertTrue($test->hasWarningRecords());
100 $this->assertTrue($test->hasInfoRecords());
101 $this->assertFalse($test->hasDebugRecords());
102 }
103
107 public function testHandleWithCallback()
108 {
109 $test = new TestHandler();
110 $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) {
111 return $test;
112 });
113 $handler->handle($this->getRecord(Logger::DEBUG));
114 $handler->handle($this->getRecord(Logger::INFO));
115 $this->assertFalse($test->hasDebugRecords());
116 $this->assertFalse($test->hasInfoRecords());
117 $handler->handle($this->getRecord(Logger::WARNING));
118 $this->assertTrue($test->hasInfoRecords());
119 $this->assertTrue(count($test->getRecords()) === 3);
120 }
121
127 {
128 $handler = new FingersCrossedHandler(function ($record, $handler) {
129 return 'foo';
130 });
131 $handler->handle($this->getRecord(Logger::WARNING));
132 }
133
137 public function testIsHandlingAlways()
138 {
139 $test = new TestHandler();
141 $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG)));
142 }
143
150 {
151 $test = new TestHandler();
153 $handler->handle($this->getRecord(Logger::DEBUG));
154 $this->assertFalse($test->hasDebugRecords());
155 $handler->handle($this->getRecord(Logger::WARNING));
156 $this->assertTrue($test->hasDebugRecords());
157 $this->assertTrue($test->hasWarningRecords());
158 }
159
166 {
167 $test = new TestHandler();
168 $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning'));
169 $handler->handle($this->getRecord(Logger::DEBUG));
170 $this->assertFalse($test->hasDebugRecords());
171 $handler->handle($this->getRecord(Logger::WARNING));
172 $this->assertTrue($test->hasDebugRecords());
173 $this->assertTrue($test->hasWarningRecords());
174 }
175
181 {
182 $test = new TestHandler();
183 $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, array('othertest' => Logger::DEBUG)));
184 $handler->handle($this->getRecord(Logger::WARNING));
185 $this->assertFalse($test->hasWarningRecords());
186 $record = $this->getRecord(Logger::DEBUG);
187 $record['channel'] = 'othertest';
188 $handler->handle($record);
189 $this->assertTrue($test->hasDebugRecords());
190 $this->assertTrue($test->hasWarningRecords());
191 }
192
198 {
199 $test = new TestHandler();
200 $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug')));
201 $handler->handle($this->getRecord(Logger::WARNING));
202 $this->assertFalse($test->hasWarningRecords());
203 $record = $this->getRecord(Logger::DEBUG);
204 $record['channel'] = 'othertest';
205 $handler->handle($record);
206 $this->assertTrue($test->hasDebugRecords());
207 $this->assertTrue($test->hasWarningRecords());
208 }
209
213 public function testHandleUsesProcessors()
214 {
215 $test = new TestHandler();
217 $handler->pushProcessor(function ($record) {
218 $record['extra']['foo'] = true;
219
220 return $record;
221 });
222 $handler->handle($this->getRecord(Logger::WARNING));
223 $this->assertTrue($test->hasWarningRecords());
224 $records = $test->getRecords();
225 $this->assertTrue($records[0]['extra']['foo']);
226 }
227
231 public function testPassthruOnClose()
232 {
233 $test = new TestHandler();
235 $handler->handle($this->getRecord(Logger::DEBUG));
236 $handler->handle($this->getRecord(Logger::INFO));
237 $handler->close();
238 $this->assertFalse($test->hasDebugRecords());
239 $this->assertTrue($test->hasInfoRecords());
240 }
241
246 {
247 $test = new TestHandler();
249 $handler->handle($this->getRecord(Logger::DEBUG));
250 $handler->handle($this->getRecord(Logger::INFO));
251 $handler->close();
252 $this->assertFalse($test->hasDebugRecords());
253 $this->assertTrue($test->hasInfoRecords());
254 }
255}
$test
Definition: Utf8Test.php:85
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
testHandleStopsBufferingAfterTrigger()
@covers Monolog\Handler\FingersCrossedHandler::handle
testHandleWithBadCallbackThrowsException()
@covers Monolog\Handler\FingersCrossedHandler::handle @expectedException RuntimeException
testHandleRestartBufferingAfterReset()
@covers Monolog\Handler\FingersCrossedHandler::handle @covers Monolog\Handler\FingersCrossedHandler::...
testHandleBufferLimit()
@covers Monolog\Handler\FingersCrossedHandler::handle
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
testPsrLevelPassthruOnClose()
@covers Monolog\Handler\FingersCrossedHandler::close
testErrorLevelActivationStrategyWithPsrLevel()
@covers Monolog\Handler\FingersCrossedHandler::__construct @covers Monolog\Handler\FingersCrossed\Err...
testHandleUsesProcessors()
@covers Monolog\Handler\FingersCrossedHandler::handle
Buffers all records until a certain level is reached.
handle(array $record)
{Handles a record.All records may be passed to this method, and the handler should discard those that...
Channel and Error level based monolog activation strategy.
Used for testing purposes.
Definition: TestHandler.php:69
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
$records
Definition: simple_test.php:17