ZendMonitorHandlerTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php declare(strict_types=1);
  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\Test\TestCase;
  12. use Monolog\Logger;
  13. class ZendMonitorHandlerTest extends TestCase
  14. {
  15. protected $zendMonitorHandler;
  16. public function setUp(): void
  17. {
  18. if (!function_exists('zend_monitor_custom_event')) {
  19. $this->markTestSkipped('ZendServer is not installed');
  20. }
  21. }
  22. /**
  23. * @covers Monolog\Handler\ZendMonitorHandler::write
  24. */
  25. public function testWrite()
  26. {
  27. $record = $this->getRecord();
  28. $formatterResult = [
  29. 'message' => $record['message'],
  30. ];
  31. $zendMonitor = $this->getMockBuilder('Monolog\Handler\ZendMonitorHandler')
  32. ->onlyMethods(['writeZendMonitorCustomEvent', 'getDefaultFormatter'])
  33. ->getMock();
  34. $formatterMock = $this->getMockBuilder('Monolog\Formatter\NormalizerFormatter')
  35. ->disableOriginalConstructor()
  36. ->getMock();
  37. $formatterMock->expects($this->once())
  38. ->method('format')
  39. ->will($this->returnValue($formatterResult));
  40. $zendMonitor->expects($this->once())
  41. ->method('getDefaultFormatter')
  42. ->will($this->returnValue($formatterMock));
  43. $levelMap = $zendMonitor->getLevelMap();
  44. $zendMonitor->expects($this->once())
  45. ->method('writeZendMonitorCustomEvent')
  46. ->with(
  47. Logger::getLevelName($record['level']),
  48. $record['message'],
  49. $formatterResult,
  50. $levelMap[$record['level']]
  51. );
  52. $zendMonitor->handle($record);
  53. }
  54. /**
  55. * @covers Monolog\Handler\ZendMonitorHandler::getDefaultFormatter
  56. */
  57. public function testGetDefaultFormatterReturnsNormalizerFormatter()
  58. {
  59. $zendMonitor = new ZendMonitorHandler();
  60. $this->assertInstanceOf('Monolog\Formatter\NormalizerFormatter', $zendMonitor->getDefaultFormatter());
  61. }
  62. }