![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Tax/Controller/Adminhtml/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Tax\Controller\Adminhtml; use Magento\Directory\Model\CountryFactory; use Magento\Directory\Model\RegionFactory; use Magento\Framework\Api\DataObjectHelper; use Magento\Framework\Json\Helper\Data; use Magento\Tax\Api\Data\TaxRateInterfaceFactory; use Magento\Tax\Api\TaxRateRepositoryInterface; use Magento\TestFramework\Helper\Bootstrap; use Magento\Tax\Api\Data\TaxRateInterface; use Magento\Tax\Model\TaxRuleFixtureFactory; use Magento\Tax\Model\Rate\Provider as RatesProvider; /** * Tests for Tax Rules controllers. * * @magentoAppArea adminhtml */ class RuleTest extends \Magento\TestFramework\TestCase\AbstractBackendController { /** * TaxRate factory * * @var TaxRateInterfaceFactory */ private $taxRateFactory; /** * TaxRateService * * @var TaxRateRepositoryInterface */ private $rateRepository; /** * Helps in creating required tax rules. * * @var TaxRuleFixtureFactory */ private $taxRateFixtureFactory; /** * @var CountryFactory */ private $countryFactory; /** * @var RegionFactory */ private $regionFactory; /** * @var DataObjectHelper */ private $dataObjectHelper; /** * @var RatesProvider */ private $taxRatesProvider; /** * @inheritdoc */ protected function setUp(): void { parent::setUp(); $this->rateRepository = $this->_objectManager->get(TaxRateRepositoryInterface::class); $this->taxRateFactory = $this->_objectManager->create(TaxRateInterfaceFactory::class); $this->dataObjectHelper = $this->_objectManager->create(DataObjectHelper::class); $this->taxRateFixtureFactory = new TaxRuleFixtureFactory(); $this->countryFactory = $this->_objectManager->create(CountryFactory::class); $this->regionFactory = $this->_objectManager->create(RegionFactory::class); $this->taxRatesProvider = $this->_objectManager->create(RatesProvider::class); $this->_generateTaxRates(); } /** * Tests request of tax rates collection set. * * @param array $postData * @param int $itemsCount * @dataProvider ajaxActionDataProvider * @magentoDbIsolation enabled */ public function testAjaxLoadRates($postData, $itemsCount) { $this->getRequest()->setPostValue($postData); $this->dispatch('backend/tax/rule/ajaxLoadRates'); $jsonBody = $this->getResponse()->getBody(); $response = Bootstrap::getObjectManager()->get(Data::class) ->jsonDecode($jsonBody); $this->assertArrayHasKey('success', $response); $this->assertTrue($response['success']); $this->assertArrayHasKey('errorMessage', $response); $this->assertEmpty($response['errorMessage']); $this->assertArrayHasKey('result', $response); $this->assertCount($itemsCount, $response['result']); } /** * Creates tax rates items in repository. */ private function _generateTaxRates() { $ratesCount = $this->taxRatesProvider->getPageSize() + 1; for ($i = 0; $i <= $ratesCount; $i++) { $taxData = [ 'tax_country_id' => 'US', 'tax_region_id' => '8', 'rate' => '8.25', 'code' => 'US-CA-*-Rate' . $i . rand(), 'zip_is_range' => true, 'zip_from' => 78765, 'zip_to' => 78780, ]; // Tax rate data object created $taxRate = $this->taxRateFactory->create(); $this->dataObjectHelper->populateWithArray($taxRate, $taxData, TaxRateInterface::class); //Tax rate service call $this->rateRepository->save($taxRate); } } /** * Provides POST data * * @return array */ public function ajaxActionDataProvider() { $taxRatesProvider = Bootstrap::getObjectManager()->create(RatesProvider::class); return [ [['p' => 1], $taxRatesProvider->getPageSize()], [['p' => 1, 's' => 'no_such_code'], 0] ]; } }