![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales/Test/Unit/Model/AdminOrder/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Sales\Test\Unit\Model\AdminOrder; use Magento\Framework\Exception\MailException; use Magento\Framework\Message\Manager; use Magento\Sales\Model\AdminOrder\EmailSender; use Magento\Sales\Model\Order; use Magento\Sales\Model\Order\Email\Sender\InvoiceSender; use Magento\Sales\Model\Order\Email\Sender\OrderSender; use Magento\Sales\Model\Order\Invoice; use Magento\Sales\Model\ResourceModel\Order\Invoice\Collection as InvoiceCollection; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; /** * Tests to sent order emails */ class EmailSenderTest extends TestCase { /** * @var LoggerInterface|MockObject */ private $loggerMock; /** * @var Manager|MockObject */ private $messageManagerMock; /** * @var OrderSender|MockObject */ private $orderSenderMock; /** * @var InvoiceSender|MockObject */ private $invoiceSenderMock; /** * @var EmailSender */ private $emailSender; /** * @inheritdoc */ protected function setUp(): void { $this->messageManagerMock = $this->createMock(Manager::class); $this->loggerMock = $this->getMockForAbstractClass(LoggerInterface::class); $this->orderSenderMock = $this->createMock(OrderSender::class); $this->invoiceSenderMock = $this->createMock(InvoiceSender::class); $this->emailSender = new EmailSender( $this->messageManagerMock, $this->loggerMock, $this->orderSenderMock, $this->invoiceSenderMock ); } /** * Test to send order emails */ public function testSendSuccess() { $invoicePaid = $this->createMock(Invoice::class); $invoicePaid->method('getState')->willReturn(Invoice::STATE_PAID); $invoiceOpen = $this->createMock(Invoice::class); $invoiceOpen->method('getState')->willReturn(Invoice::STATE_OPEN); $order = $this->createOrderMock([$invoiceOpen, $invoicePaid]); $this->orderSenderMock->expects($this->once()) ->method('send') ->with($order); $this->invoiceSenderMock->expects($this->once()) ->method('send') ->with($invoicePaid); $this->assertTrue($this->emailSender->send($order)); } /** * testSendFailure */ public function testSendFailure() { $orderMock = $this->createOrderMock(); $this->orderSenderMock->expects($this->once()) ->method('send') ->willThrowException(new MailException(__('test message'))); $this->messageManagerMock->expects($this->once()) ->method('addWarningMessage'); $this->loggerMock->expects($this->once()) ->method('critical'); $this->assertFalse($this->emailSender->send($orderMock)); } /** * Create order mock * * @param array $invoiceCollection * @return MockObject|Order */ private function createOrderMock(array $invoiceCollection = []): MockObject { $collection = $this->createMock(InvoiceCollection::class); $collection->method('getItems')->willReturn($invoiceCollection); $order = $this->createMock(Order::class); $order->method('getInvoiceCollection')->willReturn($collection); return $order; } }