Beispiel #1
0
 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());
 }
Beispiel #2
0
 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());
 }
Beispiel #3
0
 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());
 }
Beispiel #5
0
 /**
  * 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
     );
 }