| Current Path : /home/rtorresani/www/setup/src/Magento/Setup/Test/Unit/Fixtures/ |
| Current File : //home/rtorresani/www/setup/src/Magento/Setup/Test/Unit/Fixtures/CouponCodesFixtureTest.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Setup\Test\Unit\Fixtures;
use Magento\Framework\ObjectManager\ObjectManager;
use Magento\SalesRule\Model\Coupon;
use Magento\SalesRule\Model\Rule;
use Magento\Setup\Fixtures\CartPriceRulesFixture;
use Magento\Setup\Fixtures\CouponCodesFixture;
use Magento\Setup\Fixtures\FixtureModel;
use Magento\Store\Model\StoreManager;
use Magento\Store\Model\Website;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
/**
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class CouponCodesFixtureTest extends TestCase
{
/**
* @var CartPriceRulesFixture
*/
private $model;
/**
* @var MockObject|FixtureModel
*/
private $fixtureModelMock;
/**
* @var \Magento\SalesRule\Model\RuleFactory|MockObject
*/
private $ruleFactoryMock;
/**
* @var \Magento\SalesRule\Model\CouponFactory|MockObject
*/
private $couponCodeFactoryMock;
/**
* setUp
*/
protected function setUp(): void
{
$this->fixtureModelMock = $this->createMock(FixtureModel::class);
$this->ruleFactoryMock = $this->createPartialMock(\Magento\SalesRule\Model\RuleFactory::class, ['create']);
$this->couponCodeFactoryMock = $this->createPartialMock(
\Magento\SalesRule\Model\CouponFactory::class,
['create']
);
$this->model = new CouponCodesFixture(
$this->fixtureModelMock,
$this->ruleFactoryMock,
$this->couponCodeFactoryMock
);
}
/**
* testExecute
*/
public function testExecute()
{
$websiteMock = $this->createMock(Website::class);
$websiteMock->expects($this->once())
->method('getId')
->willReturn('website_id');
$storeManagerMock = $this->createMock(StoreManager::class);
$storeManagerMock->expects($this->once())
->method('getWebsites')
->willReturn([$websiteMock]);
$objectManagerMock = $this->createMock(ObjectManager::class);
$objectManagerMock->expects($this->once())
->method('create')
->willReturn($storeManagerMock);
$valueMap = [
['coupon_codes', 0, 1]
];
$this->fixtureModelMock
->expects($this->exactly(1))
->method('getValue')
->willReturnMap($valueMap);
$this->fixtureModelMock
->expects($this->exactly(1))
->method('getObjectManager')
->willReturn($objectManagerMock);
$ruleMock = $this->createMock(Rule::class);
$this->ruleFactoryMock->expects($this->once())
->method('create')
->willReturn($ruleMock);
$couponMock = $this->createMock(Coupon::class);
$couponMock->expects($this->once())
->method('setRuleId')
->willReturnSelf();
$couponMock->expects($this->once())
->method('setCode')
->willReturnSelf();
$couponMock->expects($this->once())
->method('setIsPrimary')
->willReturnSelf();
$couponMock->expects($this->once())
->method('setType')
->willReturnSelf();
$couponMock->expects($this->once())
->method('save')
->willReturnSelf();
$this->couponCodeFactoryMock->expects($this->once())
->method('create')
->willReturn($couponMock);
$this->model->execute();
}
/**
* testNoFixtureConfigValue
*/
public function testNoFixtureConfigValue()
{
$ruleMock = $this->createMock(Rule::class);
$ruleMock->expects($this->never())->method('save');
$objectManagerMock = $this->createMock(ObjectManager::class);
$objectManagerMock->expects($this->never())
->method('get')
->with(Rule::class)
->willReturn($ruleMock);
$this->fixtureModelMock
->expects($this->never())
->method('getObjectManager')
->willReturn($objectManagerMock);
$this->fixtureModelMock
->expects($this->once())
->method('getValue')
->willReturn(false);
$this->model->execute();
}
/**
* testGetActionTitle
*/
public function testGetActionTitle()
{
$this->assertSame('Generating coupon codes', $this->model->getActionTitle());
}
/**
* testIntroduceParamLabels
*/
public function testIntroduceParamLabels()
{
$this->assertSame(['coupon_codes' => 'Coupon Codes'], $this->model->introduceParamLabels());
}
}