mirror of
https://github.com/Seldaek/monolog.git
synced 2025-07-31 02:10:22 +02:00
Merge pull request #216 from henriquemoody/error_log-tests
Refactored ErrorLogHandler to use constantes for types
This commit is contained in:
@@ -20,6 +20,9 @@ use Monolog\Logger;
|
||||
*/
|
||||
class ErrorLogHandler extends AbstractProcessingHandler
|
||||
{
|
||||
const OPERATING_SYSTEM = 0;
|
||||
const SAPI = 4;
|
||||
|
||||
protected $messageType;
|
||||
|
||||
/**
|
||||
@@ -27,15 +30,29 @@ class ErrorLogHandler extends AbstractProcessingHandler
|
||||
* @param integer $level The minimum logging level at which this handler will be triggered
|
||||
* @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not
|
||||
*/
|
||||
public function __construct($messageType = 0, $level = Logger::DEBUG, $bubble = true)
|
||||
public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true)
|
||||
{
|
||||
parent::__construct($level, $bubble);
|
||||
if (!in_array($messageType, array(0, 4))) {
|
||||
throw new \InvalidArgumentException('Only message types 0 and 4 are supported');
|
||||
|
||||
if (false === in_array($messageType, self::getAvailableTypes())) {
|
||||
$message = sprintf('The given message type "%s" is not supported', print_r($messageType, true));
|
||||
throw new \InvalidArgumentException($message);
|
||||
}
|
||||
|
||||
$this->messageType = $messageType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array With all available types
|
||||
*/
|
||||
public static function getAvailableTypes()
|
||||
{
|
||||
return array(
|
||||
self::OPERATING_SYSTEM,
|
||||
self::SAPI,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
43
tests/Monolog/Handler/ErrorLogHandlerTest.php
Normal file
43
tests/Monolog/Handler/ErrorLogHandlerTest.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Monolog\Handler;
|
||||
|
||||
use Monolog\TestCase;
|
||||
use Monolog\Logger;
|
||||
|
||||
function error_log()
|
||||
{
|
||||
$GLOBALS['error_log'] = func_get_args();
|
||||
}
|
||||
|
||||
class ErrorLogHandlerTest extends TestCase
|
||||
{
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$GLOBALS['error_log'] = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Monolog\Handler\ErrorLogHandler::__construct
|
||||
* @expectedException InvalidArgumentException
|
||||
* @expectedExceptionMessage The given message type "42" is not supported
|
||||
*/
|
||||
public function testShouldNotAcceptAnInvalidTypeOnContructor()
|
||||
{
|
||||
new ErrorLogHandler(42);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Monolog\Handler\ErrorLogHandler::write
|
||||
*/
|
||||
public function testShouldLogMessagesUsingErrorLogFuncion()
|
||||
{
|
||||
$type = ErrorLogHandler::OPERATING_SYSTEM;
|
||||
$handler = new ErrorLogHandler($type);
|
||||
$handler->handle($this->getRecord(Logger::ERROR));
|
||||
|
||||
$this->assertStringMatchesFormat('[%s] test.ERROR: test [] []', $GLOBALS['error_log'][0]);
|
||||
$this->assertSame($GLOBALS['error_log'][1], $type);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user