100 lines
4.1 KiB
PHP
Executable File
100 lines
4.1 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Weee\Model;
|
|
|
|
use Magento\Customer\Api\Data\CustomerInterfaceFactory;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Customer/_files/customer_sample.php
|
|
* @magentoDataFixture Magento/Catalog/_files/products.php
|
|
* @magentoDataFixture Magento/Weee/_files/product_with_fpt.php
|
|
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
|
|
*/
|
|
class TaxTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Weee\Model\Tax
|
|
*/
|
|
protected $_model;
|
|
|
|
/**
|
|
* @var \Magento\Framework\Api\ExtensibleDataObjectConverter
|
|
*/
|
|
private $_extensibleDataObjectConverter;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$objectManager = Bootstrap::getObjectManager();
|
|
$weeeConfig = $this->createMock(\Magento\Weee\Model\Config::class);
|
|
$weeeConfig->expects($this->any())->method('isEnabled')->willReturn(true);
|
|
$weeeConfig->expects($this->any())->method('isTaxable')->willReturn(true);
|
|
$attribute = $this->createMock(\Magento\Eav\Model\Entity\Attribute::class);
|
|
$attribute->expects($this->any())->method('getAttributeCodesByFrontendType')->willReturn(
|
|
['weee']
|
|
);
|
|
$attributeFactory = $this->createPartialMock(\Magento\Eav\Model\Entity\AttributeFactory::class, ['create']);
|
|
$attributeFactory->expects($this->any())->method('create')->willReturn($attribute);
|
|
$this->_model = $objectManager->create(
|
|
\Magento\Weee\Model\Tax::class,
|
|
['weeeConfig' => $weeeConfig, 'attributeFactory' => $attributeFactory]
|
|
);
|
|
$this->_extensibleDataObjectConverter = $objectManager->get(
|
|
\Magento\Framework\Api\ExtensibleDataObjectConverter::class
|
|
);
|
|
}
|
|
|
|
public function testGetProductWeeeAttributes()
|
|
{
|
|
/** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */
|
|
$customerRepository = Bootstrap::getObjectManager()->create(
|
|
\Magento\Customer\Api\CustomerRepositoryInterface::class
|
|
);
|
|
$customerMetadataService = Bootstrap::getObjectManager()->create(
|
|
\Magento\Customer\Api\CustomerMetadataInterface::class
|
|
);
|
|
$customerFactory = Bootstrap::getObjectManager()->create(
|
|
\Magento\Customer\Api\Data\CustomerInterfaceFactory::class,
|
|
['metadataService' => $customerMetadataService]
|
|
);
|
|
$dataObjectHelper = Bootstrap::getObjectManager()->create(\Magento\Framework\Api\DataObjectHelper::class);
|
|
$expected = $this->_extensibleDataObjectConverter->toFlatArray(
|
|
$customerRepository->getById(1),
|
|
[],
|
|
\Magento\Customer\Api\Data\CustomerInterface::class
|
|
);
|
|
$customerDataSet = $customerFactory->create();
|
|
$dataObjectHelper->populateWithArray(
|
|
$customerDataSet,
|
|
$expected,
|
|
\Magento\Customer\Api\Data\CustomerInterface::class
|
|
);
|
|
$fixtureGroupCode = 'custom_group';
|
|
$fixtureTaxClassId = 3;
|
|
/** @var \Magento\Customer\Model\Group $group */
|
|
$group = Bootstrap::getObjectManager()->create(\Magento\Customer\Model\Group::class);
|
|
$fixtureGroupId = $group->load($fixtureGroupCode, 'customer_group_code')->getId();
|
|
/** @var \Magento\Quote\Model\Quote $quote */
|
|
$quote = Bootstrap::getObjectManager()->create(\Magento\Quote\Model\Quote::class);
|
|
$quote->setCustomerGroupId($fixtureGroupId);
|
|
$quote->setCustomerTaxClassId($fixtureTaxClassId);
|
|
$quote->setCustomer($customerDataSet);
|
|
$shipping = new \Magento\Framework\DataObject([
|
|
'quote' => $quote,
|
|
]);
|
|
$productRepository = Bootstrap::getObjectManager()->create(
|
|
\Magento\Catalog\Api\ProductRepositoryInterface::class
|
|
);
|
|
$product = $productRepository->get('simple-with-ftp');
|
|
|
|
$amount = $this->_model->getProductWeeeAttributes($product, $shipping, null, null, true);
|
|
$this->assertIsArray($amount);
|
|
$this->assertArrayHasKey(0, $amount);
|
|
$this->assertEquals(12.70, $amount[0]->getAmount());
|
|
}
|
|
}
|