GelfHandlerTest.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 Gelf\MessagePublisher;
  14. use Gelf\Message;
  15. class MockMessagePublisher extends MessagePublisher
  16. {
  17. public function publish(Message $message) {
  18. $this->lastMessage = $message;
  19. }
  20. public $lastMessage = null;
  21. }
  22. class GelfHandlerTest extends TestCase
  23. {
  24. public function setUp()
  25. {
  26. if (!class_exists("Gelf\MessagePublisher"))
  27. {
  28. $this->markTestSkipped("https://github.com/mlehner/gelf-php not installed");
  29. }
  30. }
  31. /**
  32. * @covers Monolog\Handler\GelfHandler::__construct
  33. */
  34. public function testConstruct()
  35. {
  36. $handler = new GelfHandler($this->getMessagePublisher());
  37. $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler);
  38. }
  39. protected function getHandler($messagePublisher)
  40. {
  41. $handler = new GelfHandler($messagePublisher);
  42. $handler->setFormatter($this->getIdentityFormatter());
  43. return $handler;
  44. }
  45. protected function getMessagePublisher()
  46. {
  47. return new MockMessagePublisher('localhost');
  48. }
  49. public function testDebug()
  50. {
  51. $messagePublisher = $this->getMessagePublisher();
  52. $handler = $this->getHandler($messagePublisher);
  53. $record = $this->getRecord(Logger::DEBUG, "A test debug message");
  54. $handler->handle($record);
  55. $this->assertEquals(7, $messagePublisher->lastMessage->getLevel());
  56. $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
  57. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
  58. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getFullMessage());
  59. }
  60. public function testWarning()
  61. {
  62. $messagePublisher = $this->getMessagePublisher();
  63. $handler = $this->getHandler($messagePublisher);
  64. $record = $this->getRecord(Logger::WARNING, "A test warning message");
  65. $handler->handle($record);
  66. $this->assertEquals(4, $messagePublisher->lastMessage->getLevel());
  67. $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
  68. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
  69. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getFullMessage());
  70. }
  71. }