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); } } }