Quellcode durchsuchen

SwiftMailerHandler bugfix.
Added generating unique id when building message and test.

Aleksei Shmelev vor 10 Jahren
Ursprung
Commit
aaa2854b10

+ 1 - 0
src/Monolog/Handler/SwiftMailerHandler.php

@@ -57,6 +57,7 @@ class SwiftMailerHandler extends MailHandler
         $message = null;
         if ($this->messageTemplate instanceof \Swift_Message) {
             $message = clone $this->messageTemplate;
+            $message->generateId();
         } elseif (is_callable($this->messageTemplate)) {
             $message = call_user_func($this->messageTemplate, $content, $records);
         }

+ 14 - 0
tests/Monolog/Handler/SwiftMailerHandlerTest.php

@@ -62,4 +62,18 @@ class SwiftMailerHandlerTest extends TestCase
         );
         $handler->handleBatch($records);
     }
+
+    public function testMessageHaveUniqueId() {
+        $messageTemplate = \Swift_Message::newInstance();
+        $handler = new SwiftMailerHandler($this->mailer, $messageTemplate);
+
+        $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage');
+        $method->setAccessible(true);
+        $method->invokeArgs($handler, array($messageTemplate, array()));
+
+        $builtMessage1 = $method->invoke($handler, $messageTemplate, array());
+        $builtMessage2 = $method->invoke($handler, $messageTemplate, array());
+
+        $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id');
+    }
 }