47 $this->loggerMock = $this->createMock(\Psr\Log\LoggerInterface::class);
48 $this->quoteMock = $this->createMock(\
Magento\Quote\Model\Quote::class);
49 $this->orderMock = $this->createMock(\
Magento\Sales\Model\Order::class);
50 $this->paymentMock = $this->createMock(\
Magento\Quote\Model\Quote\Payment::class);
51 $this->orderSenderMock =
52 $this->createMock(\
Magento\Sales\Model\Order\Email\Sender\OrderSender::class);
53 $eventMock = $this->getMockBuilder(\
Magento\Framework\Event::class)
54 ->disableOriginalConstructor()
55 ->setMethods([
'getQuote',
'getOrder'])
57 $this->observerMock = $this->createPartialMock(\
Magento\Framework\Event\Observer::class, [
'getEvent']);
58 $this->observerMock->expects($this->any())->method(
'getEvent')->willReturn($eventMock);
59 $eventMock->expects($this->once())->method(
'getQuote')->willReturn($this->quoteMock);
60 $eventMock->expects($this->once())->method(
'getOrder')->willReturn($this->orderMock);
61 $this->quoteMock->expects($this->once())->method(
'getPayment')->willReturn($this->paymentMock);
62 $this->model = new \Magento\Quote\Observer\SubmitObserver(
64 $this->orderSenderMock
70 $this->paymentMock->expects($this->once())->method(
'getOrderPlaceRedirectUrl')->willReturn(
'');
71 $this->orderMock->expects($this->once())->method(
'getCanSendNewEmailFlag')->willReturn(
true);
72 $this->orderSenderMock->expects($this->once())->method(
'send')->willReturn(
true);
73 $this->loggerMock->expects($this->never())->method(
'critical');
74 $this->model->execute($this->observerMock);
79 $this->paymentMock->expects($this->once())->method(
'getOrderPlaceRedirectUrl')->willReturn(
'');
80 $this->orderMock->expects($this->once())->method(
'getCanSendNewEmailFlag')->willReturn(
true);
81 $this->orderSenderMock->expects($this->once())->method(
'send')->willThrowException(
82 new \Exception(
'Some email sending Error')
84 $this->loggerMock->expects($this->once())->method(
'critical');
85 $this->model->execute($this->observerMock);
90 $this->paymentMock->expects($this->once())->method(
'getOrderPlaceRedirectUrl')->willReturn(
false);
91 $this->orderMock->expects($this->once())->method(
'getCanSendNewEmailFlag');
92 $this->orderSenderMock->expects($this->never())->method(
'send');
93 $this->loggerMock->expects($this->never())->method(
'critical');
94 $this->model->execute($this->observerMock);
testSendEmailWhenRedirectUrlExists()