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 
12 namespace Monolog\Handler;
13 
15 use Monolog\Logger;
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();
94  $handler = new FingersCrossedHandler($test, Logger::WARNING, 2);
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();
140  $handler = new FingersCrossedHandler($test, Logger::ERROR);
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();
216  $handler = new FingersCrossedHandler($test, Logger::INFO);
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 
245  public function testPsrLevelPassthruOnClose()
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 }
testHandleRestartBufferingAfterReset()
Monolog::handle Monolog::reset
const DEBUG
Detailed debug information.
Definition: Logger.php:32
const ERROR
Runtime errors.
Definition: Logger.php:57
Buffers all records until a certain level is reached.
testHandleWithBadCallbackThrowsException()
Monolog::handle RuntimeException
$records
Definition: simple_test.php:17
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
testErrorLevelActivationStrategy()
Monolog::__construct Monolog::__construct Monolog::isHandlerActivated
Channel and Error level based monolog activation strategy.
testHandleBuffers()
Monolog::__construct Monolog::handle
const WARNING
Exceptional occurrences that are not errors.
Definition: Logger.php:52
testChannelLevelActivationStrategyWithPsrLevels()
Monolog::__construct Monolog::isHandlerActivated
testHandleRestartBufferingAfterBeingTriggeredWhenStopBufferingIsDisabled()
Monolog::handle
handle(array $record)
{Handles a record.All records may be passed to this method, and the handler should discard those that...
testErrorLevelActivationStrategyWithPsrLevel()
Monolog::__construct Monolog::__construct Monolog::isHandlerActivated
testChannelLevelActivationStrategy()
Monolog::__construct Monolog::isHandlerActivated
Used for testing purposes.
Definition: TestHandler.php:68
$test
Definition: Utf8Test.php:85
const INFO
Interesting events.
Definition: Logger.php:39