1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-05 12:47:39 +02:00

Documented and tested FingersCrossedHandler

This commit is contained in:
Jordi Boggiano
2011-02-20 22:40:45 +01:00
parent 0b04559217
commit 228af6a6cd
2 changed files with 97 additions and 6 deletions

View File

@@ -0,0 +1,65 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Handler;
use Monolog\Logger;
class FingersCrossedHandlerTest extends \PHPUnit_Framework_TestCase
{
public function testHandleBuffers()
{
$test = new TestHandler();
$handler = new FingersCrossedHandler($test);
$handler->handle($this->getMessage(Logger::DEBUG));
$handler->handle($this->getMessage(Logger::INFO));
$this->assertFalse($test->hasDebugMessages());
$this->assertFalse($test->hasInfoMessages());
$handler->handle($this->getMessage(Logger::WARNING));
$this->assertTrue($test->hasInfoMessages());
$this->assertTrue(count($test->getMessages()) === 3);
}
public function testHandleStopsBufferingAfterTrigger()
{
$test = new TestHandler();
$handler = new FingersCrossedHandler($test);
$handler->handle($this->getMessage(Logger::WARNING));
$handler->handle($this->getMessage(Logger::DEBUG));
$this->assertTrue($test->hasWarningMessages());
$this->assertTrue($test->hasDebugMessages());
}
public function testHandleBufferLimit()
{
$test = new TestHandler();
$handler = new FingersCrossedHandler($test, Logger::WARNING, 2);
$handler->handle($this->getMessage(Logger::DEBUG));
$handler->handle($this->getMessage(Logger::DEBUG));
$handler->handle($this->getMessage(Logger::INFO));
$handler->handle($this->getMessage(Logger::WARNING));
$this->assertTrue($test->hasWarningMessages());
$this->assertTrue($test->hasInfoMessages());
$this->assertFalse($test->hasDebugMessages());
}
protected function getMessage($level = Logger::WARNING)
{
return array(
'level' => $level,
'level_name' => 'WARNING',
'channel' => 'log',
'message' => 'foo',
'datetime' => new \DateTime,
'extra' => array(),
);
}
}