/** * @param \Magento\Framework\DataObject $input * @param float $expectOutputPrice * @param string[] $configs * @param string $productClassName * * @magentoDataFixture Magento/Catalog/_files/products.php * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Customer/_files/customer_address.php * @magentoDbIsolation enabled * @dataProvider getTaxPriceDataProvider */ public function testGetTaxPrice($input, $expectOutputPrice, $configs = [], $productClassName = 'DefaultProductClass') { $this->setUpDefaultRules(); /** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */ $productRepository = $this->objectManager->get('Magento\\Catalog\\Api\\ProductRepositoryInterface'); /** @var \Magento\Catalog\Model\Product $product */ $product = $productRepository->get('simple'); $product->setTaxClassId($this->taxClasses[$productClassName]); $shippingAddress = $this->getCustomerAddress(); $billingAddress = $shippingAddress; foreach ($configs as $config) { $this->scopeConfig->setValue($config['path'], $config['value'], ScopeInterface::SCOPE_STORE, 'default'); } $price = $this->helper->getTaxPrice($product, $input->getPrice(), $input->getIncludingTax(), $shippingAddress, $billingAddress, $this->taxClasses['DefaultCustomerClass'], $input->getStore(), $input->getPriceIncludesTax(), $input->getRoundPrice()); if ($input->getNotEqual()) { $this->assertNotEquals($expectOutputPrice, $price); } else { $this->assertEquals($expectOutputPrice, $price); } }