AbstractHandlerTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /*
  3. * This file is part of the Monolog package.
  4. *
  5. * (c) Jordi Boggiano <j.boggiano@seld.be>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Monolog\Handler;
  11. use Monolog\Logger;
  12. class AbstractHandlerTest extends \PHPUnit_Framework_TestCase
  13. {
  14. public function testHandle()
  15. {
  16. $handler = new TestHandler();
  17. $this->assertTrue($handler->handle($this->getMessage()));
  18. }
  19. public function testHandleLowerLevelMessage()
  20. {
  21. $handler = new TestHandler(Logger::WARNING);
  22. $this->assertFalse($handler->handle($this->getMessage(Logger::DEBUG)));
  23. }
  24. public function testHandleBubbling()
  25. {
  26. $topHandler = new TestHandler(Logger::DEBUG, true);
  27. $bottomHandler = new TestHandler(Logger::INFO);
  28. $topHandler->setParent($bottomHandler);
  29. $this->assertTrue($topHandler->handle($this->getMessage()));
  30. $this->assertTrue($bottomHandler->hasWarningMessages());
  31. }
  32. public function testHandleNotBubbling()
  33. {
  34. $topHandler = new TestHandler(Logger::DEBUG);
  35. $bottomHandler = new TestHandler(Logger::INFO);
  36. $topHandler->setParent($bottomHandler);
  37. $this->assertTrue($topHandler->handle($this->getMessage()));
  38. $this->assertFalse($bottomHandler->hasWarningMessages());
  39. }
  40. public function testGetHandlerReturnEarly()
  41. {
  42. $topHandler = new TestHandler(Logger::DEBUG);
  43. $bottomHandler = new TestHandler(Logger::INFO);
  44. $topHandler->setParent($bottomHandler);
  45. $this->assertEquals($topHandler, $topHandler->getHandler($this->getMessage()));
  46. }
  47. public function testGetHandlerReturnsParent()
  48. {
  49. $topHandler = new TestHandler(Logger::ERROR);
  50. $bottomHandler = new TestHandler(Logger::INFO);
  51. $topHandler->setParent($bottomHandler);
  52. $this->assertEquals($bottomHandler, $topHandler->getHandler($this->getMessage()));
  53. }
  54. protected function getMessage($level = Logger::WARNING)
  55. {
  56. return array(
  57. 'level' => $level,
  58. 'level_name' => Logger::getLevelName($level),
  59. 'channel' => 'log',
  60. 'message' => 'foo',
  61. 'datetime' => new \DateTime,
  62. 'extra' => array(),
  63. );
  64. }
  65. }