Просмотр исходного кода

Test using a MockMessagePublisher

Marc Abramowitz 13 лет назад
Родитель
Сommit
bd28443b73
1 измененных файлов с 43 добавлено и 6 удалено
  1. 43 6
      tests/Monolog/Handler/GelfHandlerTest.php

+ 43 - 6
tests/Monolog/Handler/GelfHandlerTest.php

@@ -14,6 +14,16 @@ namespace Monolog\Handler;
 use Monolog\TestCase;
 use Monolog\Logger;
 use Gelf\MessagePublisher;
+use Gelf\Message;
+
+class MockMessagePublisher extends MessagePublisher
+{
+    public function publish(Message $message) {
+        $this->lastMessage = $message;
+    }
+
+    public $lastMessage = null;
+}
 
 class GelfHandlerTest extends TestCase
 {
@@ -34,16 +44,43 @@ class GelfHandlerTest extends TestCase
         $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler);
     }
 
+    protected function getHandler($messagePublisher)
+    {
+        $handler = new GelfHandler($messagePublisher);
+        $handler->setFormatter($this->getIdentityFormatter());
+        return $handler;
+    }
+
     protected function getMessagePublisher()
     {
-        return new MessagePublisher('localhost');
+        return new MockMessagePublisher('localhost');
     }
 
-    public function testStuff()
+    public function testDebug()
     {
-        $handler = new GelfHandler($this->getMessagePublisher());
-        $handler->setFormatter($this->getIdentityFormatter());
-        $handler->handle($this->getRecord(Logger::DEBUG));
-        $handler->handle($this->getRecord(Logger::WARNING));
+        $messagePublisher = $this->getMessagePublisher();
+        $handler = $this->getHandler($messagePublisher);
+
+        $record = $this->getRecord(Logger::DEBUG, "A test debug message");
+        $handler->handle($record);
+
+        $this->assertEquals(7, $messagePublisher->lastMessage->getLevel());
+        $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
+        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
+        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getFullMessage());
+    }
+
+    public function testWarning()
+    {
+        $messagePublisher = $this->getMessagePublisher();
+        $handler = $this->getHandler($messagePublisher);
+
+        $record = $this->getRecord(Logger::WARNING, "A test warning message");
+        $handler->handle($record);
+
+        $this->assertEquals(4, $messagePublisher->lastMessage->getLevel());
+        $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
+        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
+        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getFullMessage());
     }
 }