public function testMessageSubjectFormatting()
 {
     // Wire Mailer to expect a specific Swift_Message with a customized Subject
     $messageTemplate = new \Swift_Message();
     $messageTemplate->setSubject('Alert: %level_name% %message%');
     $receivedMessage = null;
     $this->mailer->expects($this->once())->method('send')->with($this->callback(function ($value) use(&$receivedMessage) {
         $receivedMessage = $value;
         return true;
     }));
     $handler = new SwiftMailerHandler($this->mailer, $messageTemplate);
     $records = array($this->getRecord(Logger::EMERGENCY));
     $handler->handleBatch($records);
     $this->assertEquals('Alert: EMERGENCY test', $receivedMessage->getSubject());
 }
Ejemplo n.º 2
0
 public function testMessageCanBeCustomizedGivenLoggedData()
 {
     // Wire Mailer to expect a specific Swift_Message with a customized Subject
     $expectedMessage = new \Swift_Message();
     $this->mailer->expects($this->once())->method('send')->with($this->callback(function ($value) use($expectedMessage) {
         return $value instanceof \Swift_Message && $value->getSubject() === 'Emergency' && $value === $expectedMessage;
     }));
     // Callback dynamically changes subject based on number of logged records
     $callback = function ($content, array $records) use($expectedMessage) {
         $subject = count($records) > 0 ? 'Emergency' : 'Normal';
         $expectedMessage->setSubject($subject);
         return $expectedMessage;
     };
     $handler = new SwiftMailerHandler($this->mailer, $callback);
     // Logging 1 record makes this an Emergency
     $records = array($this->getRecord(Logger::EMERGENCY));
     $handler->handleBatch($records);
 }