diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2011-06-29 21:32:02 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2011-06-29 21:32:02 +0200 |
commit | 66c1cc05a8e00fb5d4dbf540dba12b5727564d33 (patch) | |
tree | 15498735aa3cf0fc9f77b1f0b8a4a5fefdbc6158 | |
parent | 7a56a1c73fde59342f2e072aedb362975f6a9f8b (diff) | |
download | monolog-66c1cc05a8e00fb5d4dbf540dba12b5727564d33.zip monolog-66c1cc05a8e00fb5d4dbf540dba12b5727564d33.tar.gz monolog-66c1cc05a8e00fb5d4dbf540dba12b5727564d33.tar.bz2 |
More testing coverage
-rw-r--r-- | src/Monolog/Handler/AbstractHandler.php | 3 | ||||
-rw-r--r-- | src/Monolog/Handler/AbstractProcessingHandler.php | 10 | ||||
-rw-r--r-- | tests/Monolog/Handler/AbstractHandlerTest.php | 65 | ||||
-rw-r--r-- | tests/Monolog/Handler/AbstractProcessingHandlerTest.php | 17 | ||||
-rw-r--r-- | tests/Monolog/LoggerTest.php | 4 |
5 files changed, 87 insertions, 12 deletions
diff --git a/src/Monolog/Handler/AbstractHandler.php b/src/Monolog/Handler/AbstractHandler.php index 3e1700d..315279c 100644 --- a/src/Monolog/Handler/AbstractHandler.php +++ b/src/Monolog/Handler/AbstractHandler.php @@ -81,6 +81,9 @@ abstract class AbstractHandler implements HandlerInterface */ public function popProcessor() { + if (!$this->processors) { + throw new \LogicException('You tried to pop from an empty processor stack.'); + } return array_shift($this->processors); } diff --git a/src/Monolog/Handler/AbstractProcessingHandler.php b/src/Monolog/Handler/AbstractProcessingHandler.php index 7f0d6dc..9babe03 100644 --- a/src/Monolog/Handler/AbstractProcessingHandler.php +++ b/src/Monolog/Handler/AbstractProcessingHandler.php @@ -44,16 +44,6 @@ abstract class AbstractProcessingHandler extends AbstractHandler } /** - * {@inheritdoc} - */ - public function handleBatch(array $records) - { - foreach ($records as $record) { - $this->handle($record); - } - } - - /** * Writes the record down to the log of the implementing handler * * @param array $record diff --git a/tests/Monolog/Handler/AbstractHandlerTest.php b/tests/Monolog/Handler/AbstractHandlerTest.php index d449f8d..4c4c700 100644 --- a/tests/Monolog/Handler/AbstractHandlerTest.php +++ b/tests/Monolog/Handler/AbstractHandlerTest.php @@ -13,10 +13,45 @@ namespace Monolog\Handler; use Monolog\TestCase; use Monolog\Logger; +use Monolog\Formatter\LineFormatter; +use Monolog\Processor\WebProcessor; class AbstractHandlerTest extends TestCase { /** + * @covers Monolog\Handler\AbstractHandler::__construct + * @covers Monolog\Handler\AbstractHandler::getLevel + * @covers Monolog\Handler\AbstractHandler::setLevel + * @covers Monolog\Handler\AbstractHandler::getBubble + * @covers Monolog\Handler\AbstractHandler::setBubble + * @covers Monolog\Handler\AbstractHandler::getFormatter + * @covers Monolog\Handler\AbstractHandler::setFormatter + */ + public function testConstructAndGetSet() + { + $handler = new TestHandler(Logger::WARNING, false); + $this->assertEquals(Logger::WARNING, $handler->getLevel()); + $this->assertEquals(false, $handler->getBubble()); + + $handler->setLevel(Logger::ERROR); + $handler->setBubble(true); + $handler->setFormatter($formatter = new LineFormatter); + $this->assertEquals(Logger::ERROR, $handler->getLevel()); + $this->assertEquals(true, $handler->getBubble()); + $this->assertEquals($formatter, $handler->getFormatter()); + } + + /** + * @covers Monolog\Handler\AbstractHandler::handleBatch + */ + public function testHandleBatch() + { + $handler = new TestHandler(); + $handler->handleBatch(array($this->getRecord(), $this->getRecord())); + $this->assertEquals(2, count($handler->getRecords())); + } + + /** * @covers Monolog\Handler\AbstractHandler::isHandling */ public function testIsHandling() @@ -25,4 +60,34 @@ class AbstractHandlerTest extends TestCase $this->assertTrue($handler->isHandling($this->getRecord())); $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); } + + /** + * @covers Monolog\Handler\AbstractHandler::getFormatter + * @covers Monolog\Handler\AbstractHandler::getDefaultFormatter + */ + public function testGetFormatterInitializesDefault() + { + $handler = new TestHandler(); + $this->assertInstanceOf('Monolog\Formatter\LineFormatter', $handler->getFormatter()); + } + + /** + * @covers Monolog\Handler\AbstractHandler::pushProcessor + * @covers Monolog\Handler\AbstractHandler::popProcessor + * @expectedException LogicException + */ + public function testPushPopProcessor() + { + $logger = new TestHandler(); + $processor1 = new WebProcessor; + $processor2 = new WebProcessor; + + $logger->pushProcessor($processor1); + $logger->pushProcessor($processor2); + + $this->assertEquals($processor2, $logger->popProcessor()); + $this->assertEquals($processor1, $logger->popProcessor()); + $logger->popProcessor(); + } + } diff --git a/tests/Monolog/Handler/AbstractProcessingHandlerTest.php b/tests/Monolog/Handler/AbstractProcessingHandlerTest.php index f2b4142..31a4538 100644 --- a/tests/Monolog/Handler/AbstractProcessingHandlerTest.php +++ b/tests/Monolog/Handler/AbstractProcessingHandlerTest.php @@ -13,6 +13,7 @@ namespace Monolog\Handler; use Monolog\TestCase; use Monolog\Logger; +use Monolog\Processor\WebProcessor; class AbstractProcessingHandlerTest extends TestCase { @@ -52,4 +53,20 @@ class AbstractProcessingHandlerTest extends TestCase $this->assertTrue($handler->handle($this->getRecord())); $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); } + + /** + * @covers Monolog\Handler\AbstractProcessingHandler::processRecord + */ + public function testProcessRecord() + { + $handler = new TestHandler(); + $handler->pushProcessor(new WebProcessor(array( + 'REQUEST_URI' => '', + 'REQUEST_METHOD' => '', + 'REMOTE_ADDR' => '', + ))); + $handler->handle($this->getRecord()); + list($record) = $handler->getRecords(); + $this->assertEquals(3, count($record['extra'])); + } } diff --git a/tests/Monolog/LoggerTest.php b/tests/Monolog/LoggerTest.php index 0964b1b..75b87d9 100644 --- a/tests/Monolog/LoggerTest.php +++ b/tests/Monolog/LoggerTest.php @@ -67,8 +67,8 @@ class LoggerTest extends \PHPUnit_Framework_TestCase public function testPushPopHandler() { $logger = new Logger(__METHOD__); - $handler1 = $this->getMock('Monolog\Handler\NullHandler', array('handle')); - $handler2 = $this->getMock('Monolog\Handler\NullHandler', array('handle')); + $handler1 = new TestHandler; + $handler2 = new TestHandler; $logger->pushHandler($handler1); $logger->pushHandler($handler2); |