messageManagerMock = $this->createMock(\Magento\Framework\Message\Manager::class); $this->loggerMock = $this->createMock(\Psr\Log\LoggerInterface::class); $this->orderMock = $this->createMock(\Magento\Sales\Model\Order::class); $this->orderSenderMock = $this->createMock(\Magento\Sales\Model\Order\Email\Sender\OrderSender::class); $this->emailSender = new EmailSender($this->messageManagerMock, $this->loggerMock, $this->orderSenderMock); } /** * testSendSuccess */ public function testSendSuccess() { $this->orderSenderMock->expects($this->once()) ->method('send'); $this->assertTrue($this->emailSender->send($this->orderMock)); } /** * testSendFailure */ public function testSendFailure() { $this->orderSenderMock->expects($this->once()) ->method('send') ->willThrowException(new \Magento\Framework\Exception\MailException(__('test message'))); $this->messageManagerMock->expects($this->once()) ->method('addWarningMessage'); $this->loggerMock->expects($this->once()) ->method('critical'); $this->assertFalse($this->emailSender->send($this->orderMock)); } }