From aaa2854b107898f42cae8d22b47d8dcfbd90390a Mon Sep 17 00:00:00 2001 From: Aleksei Shmelev Date: Mon, 14 Sep 2015 16:37:30 +0300 Subject: [PATCH] SwiftMailerHandler bugfix. Added generating unique id when building message and test. --- src/Monolog/Handler/SwiftMailerHandler.php | 1 + tests/Monolog/Handler/SwiftMailerHandlerTest.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/Monolog/Handler/SwiftMailerHandler.php b/src/Monolog/Handler/SwiftMailerHandler.php index c724bb21..5c2b1568 100644 --- a/src/Monolog/Handler/SwiftMailerHandler.php +++ b/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); } diff --git a/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/tests/Monolog/Handler/SwiftMailerHandlerTest.php index ac885220..55e69c22 100644 --- a/tests/Monolog/Handler/SwiftMailerHandlerTest.php +++ b/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'); + } }