95 lines
3.3 KiB
PHP
Executable File
95 lines
3.3 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Tax\Model\TaxClass;
|
|
|
|
use Magento\Tax\Api\Data\TaxClassInterfaceFactory;
|
|
use Magento\Tax\Api\Data\TaxClassKeyInterface;
|
|
use Magento\Tax\Api\TaxClassManagementInterface;
|
|
use Magento\Tax\Model\TaxClass\Key;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
|
|
class ManagementTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var Repository
|
|
*/
|
|
private $taxClassRepository;
|
|
|
|
/**
|
|
* @var Management
|
|
*/
|
|
private $taxClassManagement;
|
|
|
|
/**
|
|
* @var TaxClassInterfaceFactory
|
|
*/
|
|
private $taxClassFactory;
|
|
|
|
/**
|
|
* @var \Magento\Framework\ObjectManagerInterface
|
|
*/
|
|
private $objectManager;
|
|
|
|
/**
|
|
* @var \Magento\Framework\Api\DataObjectHelper
|
|
*/
|
|
private $dataObjectHelper;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->taxClassRepository = $this->objectManager->create(\Magento\Tax\Api\TaxClassRepositoryInterface::class);
|
|
$this->taxClassManagement = $this->objectManager->create(\Magento\Tax\Api\TaxClassManagementInterface::class);
|
|
$this->taxClassFactory = $this->objectManager->create(\Magento\Tax\Api\Data\TaxClassInterfaceFactory::class);
|
|
$this->dataObjectHelper = $this->objectManager->create(\Magento\Framework\Api\DataObjectHelper::class);
|
|
}
|
|
|
|
/**
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testGetTaxClassId()
|
|
{
|
|
$taxClassName = 'Get Me';
|
|
$taxClassDataObject = $this->taxClassFactory->create();
|
|
$taxClassDataObject->setClassName($taxClassName)
|
|
->setClassType(TaxClassManagementInterface::TYPE_CUSTOMER);
|
|
|
|
$taxClassId = $this->taxClassRepository->save($taxClassDataObject);
|
|
/** @var \Magento\Tax\Api\Data\TaxClassKeyInterfaceFactory $taxClassKeyFactory */
|
|
$taxClassKeyFactory = $this->objectManager->create(\Magento\Tax\Api\Data\TaxClassKeyInterfaceFactory::class);
|
|
$taxClassKeyTypeId = $taxClassKeyFactory->create();
|
|
$this->dataObjectHelper->populateWithArray(
|
|
$taxClassKeyTypeId,
|
|
[
|
|
Key::KEY_TYPE => TaxClassKeyInterface::TYPE_ID,
|
|
Key::KEY_VALUE => $taxClassId,
|
|
],
|
|
\Magento\Tax\Api\Data\TaxClassKeyInterface::class
|
|
);
|
|
$this->assertEquals(
|
|
$taxClassId,
|
|
$this->taxClassManagement->getTaxClassId($taxClassKeyTypeId, TaxClassManagementInterface::TYPE_CUSTOMER)
|
|
);
|
|
$taxClassKeyTypeName = $taxClassKeyFactory->create();
|
|
$this->dataObjectHelper->populateWithArray(
|
|
$taxClassKeyTypeName,
|
|
[
|
|
Key::KEY_TYPE => TaxClassKeyInterface::TYPE_NAME,
|
|
Key::KEY_VALUE => $taxClassName,
|
|
],
|
|
\Magento\Tax\Api\Data\TaxClassKeyInterface::class
|
|
);
|
|
$this->assertEquals(
|
|
$taxClassId,
|
|
$this->taxClassManagement->getTaxClassId($taxClassKeyTypeId, TaxClassManagementInterface::TYPE_CUSTOMER)
|
|
);
|
|
$this->assertNull($this->taxClassManagement->getTaxClassId(null));
|
|
$this->assertNull(
|
|
$this->taxClassManagement->getTaxClassId($taxClassKeyTypeName, TaxClassManagementInterface::TYPE_PRODUCT)
|
|
);
|
|
}
|
|
}
|