123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?php
- /**
- * @copyright Vertex. All rights reserved. https://www.vertexinc.com/
- * @author Mediotype https://www.mediotype.com/
- */
- namespace Vertex\Tax\Test\Unit\Model\Config\Backend;
- use Magento\Framework\App\Config\Value;
- use Magento\Framework\Math\Random;
- use Magento\Framework\Model\Context;
- use Magento\Framework\Registry;
- use Magento\Framework\App\Cache\TypeListInterface;
- use Magento\Framework\App\Config\ScopeConfigInterface;
- use Magento\Framework\Event\ManagerInterface;
- use Vertex\Tax\Model\Config\Backend\TaxOverride;
- use Vertex\Tax\Model\Config\DeliveryTerm;
- use Vertex\Tax\Test\Unit\TestCase;
- /**
- * Test Class @see TaxOverride
- */
- class TaxOverrideTest extends TestCase
- {
- /** @var DeliveryTerm|\PHPUnit_Framework_MockObject_MockObject */
- private $deliveryTerm;
- /** @var ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject */
- private $configMock;
- /** @var TypeListInterface|\PHPUnit_Framework_MockObject_MockObject */
- private $cacheTypeListMock;
- /** @var Context|\PHPUnit_Framework_MockObject_MockObject */
- private $context;
- /** @var ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */
- private $eventManagerMock;
- /** @var Value */
- private $model;
- /** @var Random|\PHPUnit_Framework_MockObject_MockObject */
- private $random;
- /** @var Registry|\PHPUnit_Framework_MockObject_MockObject */
- private $registry;
- /**
- * @inheritdoc
- */
- protected function setUp() // @codingStandardsIgnoreLine MEQP2.PHP.ProtectedClassMember.FoundProtected
- {
- parent::setUp();
- $this->context = $this->createMock(Context::class);
- $this->registry = $this->createMock(Registry::class);
- $this->configMock = $this->createMock(ScopeConfigInterface::class);
- $this->eventManagerMock = $this->createMock(ManagerInterface::class);
- $this->cacheTypeListMock = $this->getMockBuilder(TypeListInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->random = $this->createMock(Random::class);
- $this->deliveryTerm = $this->objectManager->getObject(
- DeliveryTerm::class,
- [
- 'mathRandom' => $this->random,
- ]
- );
- $this->model = $this->objectManager->getObject(
- TaxOverride::class,
- [
- 'registry' => $this->registry,
- 'context' => $this->context,
- 'config' => $this->configMock,
- 'eventDispatcher' => $this->eventManagerMock,
- 'cacheTypeList' => $this->cacheTypeListMock,
- 'deliveryTermConfig' => $this->deliveryTerm,
- ]
- );
- }
- /**
- * Test method @see TaxOverride::_afterLoad
- *
- * @param string|bool|array $value
- * @param array $result
- * @dataProvider testAfterLoadDataProvider
- * @return void
- */
- public function testAfterLoad($value, $result)
- {
- $this->model->setData('value', $value);
- $this->model->afterLoad();
- $this->assertEquals(
- $result,
- $this->model->getValue()
- );
- }
- /**
- * Data provider for @see testAfterLoad
- *
- * @return array
- */
- public function testAfterLoadDataProvider()
- {
- return [
- 'invalid bool' => [false, []],
- 'invalid empty string' => ['', []],
- 'valid empty array' => [[], []],
- 'valid with serialized' => [
- '{"AR":"DAT"}',
- [
- '' => ['country_id' => 'AR', 'delivery_term' => 'DAT'],
- ],
- ],
- ];
- }
- /**
- * Test method @see TaxOverride::beforeSave
- *
- * @param string|bool|array $value
- * @param string $result
- * @dataProvider testBeforeSaveDataProvider
- * @return void
- */
- public function testBeforeSave($value, $result)
- {
- $this->model->setData('value', $value);
- $this->model->beforeSave();
- $this->assertEquals(
- $result,
- $this->model->getValue()
- );
- }
- /**
- * Data provider for @see testBeforeSave
- *
- * @return array
- */
- public function testBeforeSaveDataProvider()
- {
- return [
- 'invalid bool' => [false, ''],
- 'invalid empty string' => ['', ''],
- 'valid empty array' => [[], '[]'],
- 'valid delivery term' => [
- [
- 'AF' => 'AD',
- 'AW' => 'CFR',
- ],
- '{"AF":"AD","AW":"CFR"}',
- ],
- ];
- }
- }
|