説明なし

AbstractHandlerTest.php 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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\TestCase;
  12. use Monolog\Logger;
  13. use Monolog\Formatter\LineFormatter;
  14. use Monolog\Processor\WebProcessor;
  15. class AbstractHandlerTest extends TestCase
  16. {
  17. /**
  18. * @covers Monolog\Handler\AbstractHandler::__construct
  19. * @covers Monolog\Handler\AbstractHandler::getLevel
  20. * @covers Monolog\Handler\AbstractHandler::setLevel
  21. * @covers Monolog\Handler\AbstractHandler::getBubble
  22. * @covers Monolog\Handler\AbstractHandler::setBubble
  23. * @covers Monolog\Handler\AbstractHandler::getFormatter
  24. * @covers Monolog\Handler\AbstractHandler::setFormatter
  25. */
  26. public function testConstructAndGetSet()
  27. {
  28. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false));
  29. $this->assertEquals(Logger::WARNING, $handler->getLevel());
  30. $this->assertEquals(false, $handler->getBubble());
  31. $handler->setLevel(Logger::ERROR);
  32. $handler->setBubble(true);
  33. $handler->setFormatter($formatter = new LineFormatter);
  34. $this->assertEquals(Logger::ERROR, $handler->getLevel());
  35. $this->assertEquals(true, $handler->getBubble());
  36. $this->assertSame($formatter, $handler->getFormatter());
  37. }
  38. /**
  39. * @covers Monolog\Handler\AbstractHandler::handleBatch
  40. */
  41. public function testHandleBatch()
  42. {
  43. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler');
  44. $handler->expects($this->exactly(2))
  45. ->method('handle');
  46. $handler->handleBatch(array($this->getRecord(), $this->getRecord()));
  47. }
  48. /**
  49. * @covers Monolog\Handler\AbstractHandler::isHandling
  50. */
  51. public function testIsHandling()
  52. {
  53. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false));
  54. $this->assertTrue($handler->isHandling($this->getRecord()));
  55. $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));
  56. }
  57. /**
  58. * @covers Monolog\Handler\AbstractHandler::__construct
  59. */
  60. public function testHandlesPsrStyleLevels()
  61. {
  62. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array('warning', false));
  63. $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));
  64. $handler->setLevel('debug');
  65. $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG)));
  66. }
  67. /**
  68. * @covers Monolog\Handler\AbstractHandler::getFormatter
  69. * @covers Monolog\Handler\AbstractHandler::getDefaultFormatter
  70. */
  71. public function testGetFormatterInitializesDefault()
  72. {
  73. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler');
  74. $this->assertInstanceOf('Monolog\Formatter\LineFormatter', $handler->getFormatter());
  75. }
  76. /**
  77. * @covers Monolog\Handler\AbstractHandler::pushProcessor
  78. * @covers Monolog\Handler\AbstractHandler::popProcessor
  79. * @expectedException LogicException
  80. */
  81. public function testPushPopProcessor()
  82. {
  83. $logger = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler');
  84. $processor1 = new WebProcessor;
  85. $processor2 = new WebProcessor;
  86. $logger->pushProcessor($processor1);
  87. $logger->pushProcessor($processor2);
  88. $this->assertEquals($processor2, $logger->popProcessor());
  89. $this->assertEquals($processor1, $logger->popProcessor());
  90. $logger->popProcessor();
  91. }
  92. /**
  93. * @covers Monolog\Handler\AbstractHandler::pushProcessor
  94. * @expectedException InvalidArgumentException
  95. */
  96. public function testPushProcessorWithNonCallable()
  97. {
  98. $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler');
  99. $handler->pushProcessor(new \stdClass());
  100. }
  101. }