| Current Path : /home/rtorresani/www/vendor/magento/module-weee/Test/Unit/Observer/ |
| Current File : //home/rtorresani/www/vendor/magento/module-weee/Test/Unit/Observer/AfterAddressSaveTest.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Weee\Test\Unit\Observer;
use Magento\Customer\Model\Address;
use Magento\Framework\Event\Observer;
use Magento\Framework\Module\Manager;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
use Magento\PageCache\Model\Config;
use Magento\Tax\Api\TaxAddressManagerInterface;
use Magento\Weee\Helper\Data;
use Magento\Weee\Observer\AfterAddressSave;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class AfterAddressSaveTest extends TestCase
{
/**
* @var ObjectManager
*/
private $objectManager;
/**
* @var Observer|MockObject
*/
private $observerMock;
/**
* Module manager
*
* @var Manager|MockObject
*/
private $moduleManagerMock;
/**
* Cache config
*
* @var Config|MockObject
*/
private $cacheConfigMock;
/**
* @var Data|MockObject
*/
private $weeeHelperMock;
/**
* @var TaxAddressManagerInterface|MockObject
*/
private $addressManagerMock;
/**
* @var AfterAddressSave
*/
protected $session;
protected function setUp(): void
{
$this->objectManager = new ObjectManager($this);
$this->observerMock = $this->getMockBuilder(Observer::class)
->disableOriginalConstructor()
->setMethods(['getCustomerAddress'])
->getMock();
$this->moduleManagerMock = $this->getMockBuilder(Manager::class)
->disableOriginalConstructor()
->getMock();
$this->cacheConfigMock = $this->getMockBuilder(Config::class)
->disableOriginalConstructor()
->getMock();
$this->weeeHelperMock = $this->getMockBuilder(Data::class)
->disableOriginalConstructor()
->getMock();
$this->addressManagerMock = $this->getMockBuilder(TaxAddressManagerInterface::class)
->setMethods(['setDefaultAddressAfterSave', 'setDefaultAddressAfterLogIn'])
->disableOriginalConstructor()
->getMockForAbstractClass();
$this->session = $this->objectManager->getObject(
AfterAddressSave::class,
[
'weeeHelper' => $this->weeeHelperMock,
'moduleManager' => $this->moduleManagerMock,
'cacheConfig' => $this->cacheConfigMock,
'addressManager' => $this->addressManagerMock,
]
);
}
/**
* @test
* @dataProvider getExecuteDataProvider
*
* @param $isEnabledPageCache
* @param $isEnabledConfigCache
* @param $isEnabledWeee
* @param $isNeedSetAddress
*/
public function testExecute(
$isEnabledPageCache,
$isEnabledConfigCache,
$isEnabledWeee,
$isNeedSetAddress
) {
$this->moduleManagerMock->expects($this->any())
->method('isEnabled')
->with('Magento_PageCache')
->willReturn($isEnabledPageCache);
$this->cacheConfigMock->expects($this->any())
->method('isEnabled')
->willReturn($isEnabledConfigCache);
$this->weeeHelperMock->expects($this->any())
->method('isEnabled')
->willReturn($isEnabledWeee);
/* @var \Magento\Customer\Model\Address|MockObject $address */
$address = $this->getMockBuilder(Address::class)
->disableOriginalConstructor()
->getMock();
$this->observerMock->expects($this->any())
->method('getCustomerAddress')
->willReturn($address);
$this->addressManagerMock->expects($isNeedSetAddress ? $this->once() : $this->never())
->method('setDefaultAddressAfterSave')
->with($address);
$this->session->execute($this->observerMock);
}
/**
* @return array
*/
public function getExecuteDataProvider()
{
return [
[false, false, false, false],
[false, false, true, false],
[false, true, false, false],
[false, true, true, false],
[true, false, false, false],
[true, false, true, false],
[true, true, false, false],
[true, true, true, true],
];
}
}