![]() 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/Order/Email/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Sales\Test\Unit\Model\Order\Email; use Magento\Framework\Mail\Template\TransportBuilder; use Magento\Sales\Model\Order\Email\Container\ShipmentIdentity; use Magento\Sales\Model\Order\Email\Container\Template; use Magento\Sales\Model\Order\Email\SenderBuilder; use Magento\Sales\Test\Unit\Model\Order\Email\Stub\TransportInterfaceMock; use Magento\Store\Model\Store; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class SenderBuilderTest extends TestCase { /** * @var SenderBuilder */ protected $senderBuilder; /** * @var MockObject */ protected $templateContainerMock; /** * @var MockObject */ protected $identityContainerMock; /** * @var MockObject */ protected $transportBuilder; /** * @var MockObject */ private $storeMock; protected function setUp(): void { $this->templateContainerMock = $this->createPartialMock( Template::class, ['getTemplateVars', 'getTemplateOptions', 'getTemplateId'] ); $this->storeMock = $this->getMockBuilder(Store::class) ->addMethods(['getStoreId']) ->onlyMethods(['getId']) ->disableOriginalConstructor() ->getMock(); $this->identityContainerMock = $this->getMockBuilder(ShipmentIdentity::class) ->addMethods(['getTemplateOptions']) ->onlyMethods( [ 'getEmailIdentity', 'getCustomerEmail', 'getCustomerName', 'getEmailCopyTo', 'getCopyMethod', 'getStore' ] ) ->disableOriginalConstructor() ->getMock(); $this->transportBuilder = $this->createPartialMock( TransportBuilder::class, [ 'addTo', 'addBcc', 'getTransport', 'setTemplateIdentifier', 'setTemplateOptions', 'setTemplateVars', 'setFromByScope', ] ); $this->senderBuilder = new SenderBuilder( $this->templateContainerMock, $this->identityContainerMock, $this->transportBuilder ); } public function testSend() { $this->setExpectedCount(1); $customerName = 'test_name'; $customerEmail = 'test_email'; $identity = 'email_identity_test'; $transportMock = $this->createMock( TransportInterfaceMock::class ); $this->identityContainerMock->expects($this->once()) ->method('getEmailCopyTo') ->willReturn(['[email protected]']); $this->identityContainerMock->expects($this->once()) ->method('getCopyMethod') ->willReturn('bcc'); $this->identityContainerMock->expects($this->once()) ->method('getCustomerEmail') ->willReturn($customerEmail); $this->identityContainerMock->expects($this->once()) ->method('getCustomerName') ->willReturn($customerName); $this->identityContainerMock->expects($this->exactly(1)) ->method('getStore') ->willReturn($this->storeMock); $this->storeMock->expects($this->once()) ->method('getId') ->willReturn(1); $this->transportBuilder->expects($this->exactly(1)) ->method('setFromByScope') ->with($identity, 1); $this->transportBuilder->expects($this->exactly(1)) ->method('addTo') ->with($customerEmail, $customerName); $this->transportBuilder->expects($this->exactly(1)) ->method('getTransport') ->willReturn($transportMock); $this->senderBuilder->send(); } public function testSendCopyTo() { $this->setExpectedCount(2); $identity = 'email_identity_test'; $transportMock = $this->createMock( TransportInterfaceMock::class ); $this->identityContainerMock->expects($this->never()) ->method('getCustomerEmail'); $this->identityContainerMock->expects($this->never()) ->method('getCustomerName'); $this->transportBuilder->expects($this->exactly(2)) ->method('addTo'); $this->transportBuilder->expects($this->exactly(2)) ->method('setFromByScope') ->with($identity, 1); $this->identityContainerMock->expects($this->exactly(2)) ->method('getStore') ->willReturn($this->storeMock); $this->storeMock->expects($this->exactly(2)) ->method('getId') ->willReturn(1); $this->transportBuilder->expects($this->exactly(2)) ->method('getTransport') ->willReturn($transportMock); $this->senderBuilder->sendCopyTo(); } /** * Sets expected count invocation. * * @param int $count */ private function setExpectedCount(int $count = 1) { $templateId = 'test_template_id'; $templateOptions = ['option1', 'option2']; $templateVars = ['var1', 'var2']; $emailIdentity = 'email_identity_test'; $emailCopyTo = ['[email protected]', '[email protected]']; $this->templateContainerMock->expects($this->exactly($count)) ->method('getTemplateId') ->willReturn($templateId); $this->transportBuilder->expects($this->exactly($count)) ->method('setTemplateIdentifier') ->with($templateId); $this->templateContainerMock->expects($this->exactly($count)) ->method('getTemplateOptions') ->willReturn($templateOptions); $this->transportBuilder->expects($this->exactly($count)) ->method('setTemplateOptions') ->with($templateOptions); $this->templateContainerMock->expects($this->exactly($count)) ->method('getTemplateVars') ->willReturn($templateVars); $this->transportBuilder->expects($this->exactly($count)) ->method('setTemplateVars') ->with($templateVars); $this->identityContainerMock->expects($this->exactly($count)) ->method('getEmailIdentity') ->willReturn($emailIdentity); $this->transportBuilder->expects($this->exactly($count)) ->method('setFromByScope') ->with($emailIdentity, 1); $this->identityContainerMock->expects($this->once()) ->method('getEmailCopyTo') ->willReturn($emailCopyTo); } }