public function testGetProductWeeeAttributes() { /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */ $customerRepository = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); $customerMetadataService = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\CustomerMetadataInterface'); $customerFactory = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\Data\\CustomerInterfaceFactory', ['metadataService' => $customerMetadataService]); $dataObjectHelper = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\DataObjectHelper'); $expected = $this->_extensibleDataObjectConverter->toFlatArray($customerRepository->getById(1), [], '\\Magento\\Customer\\Api\\Data\\CustomerInterface'); $customerDataSet = $customerFactory->create(); $dataObjectHelper->populateWithArray($customerDataSet, $expected, '\\Magento\\Customer\\Api\\Data\\CustomerInterface'); $fixtureGroupCode = 'custom_group'; $fixtureTaxClassId = 3; /** @var \Magento\Customer\Model\Group $group */ $group = Bootstrap::getObjectManager()->create('Magento\\Customer\\Model\\Group'); $fixtureGroupId = $group->load($fixtureGroupCode, 'customer_group_code')->getId(); /** @var \Magento\Quote\Model\Quote $quote */ $quote = Bootstrap::getObjectManager()->create('Magento\\Quote\\Model\\Quote'); $quote->setCustomerGroupId($fixtureGroupId); $quote->setCustomerTaxClassId($fixtureTaxClassId); $quote->setCustomer($customerDataSet); $shipping = new \Magento\Framework\Object(['quote' => $quote]); $product = Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $product->load(1); $weeeTax = Bootstrap::getObjectManager()->create('Magento\\Weee\\Model\\Tax'); $weeeTaxData = ['website_id' => '1', 'entity_id' => '1', 'country' => 'US', 'value' => '12.4', 'state' => '0', 'attribute_id' => '73', 'entity_type_id' => '0']; $weeeTax->setData($weeeTaxData); $weeeTax->save(); $amount = $this->_model->getProductWeeeAttributes($product, $shipping); $this->assertEquals('12.4000', $amount[0]->getAmount()); }
public function testGetProductWeeeAttributes() { $customerAccountService = Bootstrap::getObjectManager()->create('Magento\\Customer\\Service\\V1\\CustomerAccountServiceInterface'); $customerMetadataService = Bootstrap::getObjectManager()->create('Magento\\Customer\\Service\\V1\\CustomerMetadataService'); $customerBuilder = Bootstrap::getObjectManager()->create('Magento\\Customer\\Service\\V1\\Data\\CustomerBuilder', ['metadataService' => $customerMetadataService]); $expected = \Magento\Framework\Service\EavDataObjectConverter::toFlatArray($customerAccountService->getCustomer(1)); $customerBuilder->populateWithArray($expected); $customerDataSet = $customerBuilder->create(); $fixtureGroupCode = 'custom_group'; $fixtureTaxClassId = 3; /** @var \Magento\Customer\Model\Group $group */ $group = Bootstrap::getObjectManager()->create('Magento\\Customer\\Model\\Group'); $fixtureGroupId = $group->load($fixtureGroupCode, 'customer_group_code')->getId(); /** @var \Magento\Sales\Model\Quote $quote */ $quote = Bootstrap::getObjectManager()->create('Magento\\Sales\\Model\\Quote'); $quote->setCustomerGroupId($fixtureGroupId); $quote->setCustomerTaxClassId($fixtureTaxClassId); $quote->setCustomerData($customerDataSet); $shipping = new \Magento\Framework\Object(['quote' => $quote]); $product = Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $product->load(1); $weeeTax = Bootstrap::getObjectManager()->create('Magento\\Weee\\Model\\Tax'); $weeeTaxData = array('website_id' => '1', 'entity_id' => '1', 'country' => 'US', 'value' => '12.4', 'state' => '0', 'attribute_id' => '75', 'entity_type_id' => '0'); $weeeTax->setData($weeeTaxData); $weeeTax->save(); $amount = $this->_model->getProductWeeeAttributes($product, $shipping); $this->assertEquals('12.4000', $amount[0]->getAmount()); }
public function testGetProductWeeeAttributes() { /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */ $customerRepository = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); $customerMetadataService = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\CustomerMetadataInterface'); $customerFactory = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\Data\\CustomerInterfaceFactory', ['metadataService' => $customerMetadataService]); $dataObjectHelper = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\DataObjectHelper'); $expected = $this->_extensibleDataObjectConverter->toFlatArray($customerRepository->getById(1), [], '\\Magento\\Customer\\Api\\Data\\CustomerInterface'); $customerDataSet = $customerFactory->create(); $dataObjectHelper->populateWithArray($customerDataSet, $expected, '\\Magento\\Customer\\Api\\Data\\CustomerInterface'); $fixtureGroupCode = 'custom_group'; $fixtureTaxClassId = 3; /** @var \Magento\Customer\Model\Group $group */ $group = Bootstrap::getObjectManager()->create('Magento\\Customer\\Model\\Group'); $fixtureGroupId = $group->load($fixtureGroupCode, 'customer_group_code')->getId(); /** @var \Magento\Quote\Model\Quote $quote */ $quote = Bootstrap::getObjectManager()->create('Magento\\Quote\\Model\\Quote'); $quote->setCustomerGroupId($fixtureGroupId); $quote->setCustomerTaxClassId($fixtureTaxClassId); $quote->setCustomer($customerDataSet); $shipping = new \Magento\Framework\DataObject(['quote' => $quote]); $productRepository = Bootstrap::getObjectManager()->create('Magento\\Catalog\\Api\\ProductRepositoryInterface'); $product = $productRepository->get('simple-with-ftp'); $amount = $this->_model->getProductWeeeAttributes($product, $shipping, null, null, true); $this->assertTrue(is_array($amount)); $this->assertArrayHasKey(0, $amount); $this->assertEquals(12.7, $amount[0]->getAmount()); }
/** * test GetProductWeeeAttributes * @dataProvider getProductWeeeAttributesDataProvider * @param array $weeeTaxCalculationsByEntity * @param array $expectedFptLabel */ public function testGetProductWeeeAttributes($weeeTaxCalculationsByEntity, $expectedFptLabel) { $product = $this->getMock('\\Magento\\Catalog\\Model\\Product', [], [], '', false); $website = $this->getMock('\\Magento\\Store\\Model\\Website', [], [], '', false); $store = $this->getMock('\\Magento\\Store\\Model\\Store', [], [], '', false); $group = $this->getMock('\\Magento\\Store\\Model\\Group', [], [], '', false); $attribute = $this->getMock('\\Magento\\Eav\\Model\\Entity\\Attribute', [], [], '', false); $calculation = $this->getMock('Magento\\Tax\\Model\\Calculation', [], [], '', false); $obj = new \Magento\Framework\DataObject(['country' => 'US', 'region' => 'TX']); $calculation->expects($this->once())->method('getRateRequest')->willReturn($obj); $calculation->expects($this->once())->method('getDefaultRateRequest')->willReturn($obj); $calculation->expects($this->any())->method('getRate')->willReturn('10'); $attribute->expects($this->once())->method('getAttributeCodesByFrontendType')->willReturn(['0' => 'fpt']); $store->expects($this->any())->method('getId')->willReturn(1); $product->expects($this->any())->method('getId')->willReturn(1); $website->expects($this->any())->method('getId')->willReturn(1); $website->expects($this->any())->method('getDefaultGroup')->willReturn($group); $group->expects($this->any())->method('getDefaultStore')->willReturn($store); $this->storeManager->expects($this->any())->method('getWebsite')->willReturn($website); $this->weeeConfig->expects($this->any())->method('isEnabled')->willReturn(true); $this->weeeConfig->expects($this->any())->method('isTaxable')->willReturn(true); $this->attributeFactory->expects($this->any())->method('create')->willReturn($attribute); $this->calculationFactory->expects($this->any())->method('create')->willReturn($calculation); $this->priceCurrency->expects($this->any())->method('round')->with(0.1)->willReturn(0.25); $this->resource->expects($this->any())->method('fetchWeeeTaxCalculationsByEntity')->willReturn([0 => $weeeTaxCalculationsByEntity]); $result = $this->model->getProductWeeeAttributes($product, null, null, null, true); $this->assertTrue(is_array($result)); $this->assertArrayHasKey(0, $result); $obj = $result[0]; $this->assertEquals(1, $obj->getAmount()); $this->assertEquals(0.25, $obj->getTaxAmount()); $this->assertEquals($weeeTaxCalculationsByEntity['attribute_code'], $obj->getCode()); $this->assertEquals(__($expectedFptLabel), $obj->getName()); }
/** * Proxy for \Magento\Weee\Model\Tax::getProductWeeeAttributes() * * @param \Magento\Catalog\Model\Product $product * @param null|false|\Magento\Framework\DataObject $shipping * @param null|false|\Magento\Framework\DataObject $billing * @param Website $website * @param bool $calculateTaxes * @return \Magento\Framework\DataObject[] */ public function getProductWeeeAttributes( $product, $shipping = null, $billing = null, $website = null, $calculateTaxes = false ) { return $this->_weeeTax->getProductWeeeAttributes( $product, $shipping, $billing, $website, $calculateTaxes ); }