Example #1
0
 public function testSendGenericEmail()
 {
     $sendGridEmail = $this->getMockBuilder('\\SendGrid\\Email')->getMock();
     $sendGrid = $this->getMockBuilder('\\SendGrid')->disableOriginalConstructor()->getMock();
     $sendGridResponse = $this->getMockBuilder('SendGrid\\Response')->disableOriginalConstructor()->getMock();
     $sendGrid->method('send')->willReturn($sendGridResponse);
     $sendGridEmailFactory = $this->getMockBuilder('\\Alexlbr\\EmailLibrary\\Mailer\\SendGrid\\Factory\\SendGridEmailFactory')->getMock();
     $sendGridEmailFactory->method('createSendGridEmail')->willReturn($sendGridEmail);
     $email = $this->getMockBuilder('\\Alexlbr\\EmailLibrary\\Email')->disableOriginalConstructor()->getMock();
     $sendGridResponseFactory = $this->getMockBuilder('\\Alexlbr\\EmailLibrary\\Mailer\\SendGrid\\Factory\\SendGridResponseFactory')->disableOriginalConstructor()->getMock();
     $mailerResponse = $this->getMockBuilder('\\Alexlbr\\EmailLibrary\\Mailer\\MailerResponse')->disableOriginalConstructor()->getMock();
     $sendGridResponseFactory->method('createMailerResponse')->willReturn($mailerResponse);
     $mailer = new Mailer($sendGridEmailFactory, $sendGrid, $sendGridResponseFactory);
     $mailer->send($email);
 }
 /**
  * {@inheridoc}
  */
 public function send()
 {
     while (is_array($this->mailList) && ($mail = array_shift($this->mailList)) && $mail instanceof EmailInterface) {
         if (!is_array($this->options)) {
             throw new MailerException('You need to prepare the mail that will be sent.');
         }
         $emailEvent = new EmailEvent($mail);
         $this->dispatcher->dispatch(Events::STORE_EMAIL, $emailEvent);
         if (true === $emailEvent->isCanceled()) {
             $this->loggerDebug('The email is canceled by the application.');
         } else {
             $this->sendGrid->send($mail);
         }
     }
 }