Skip to content

Commit 42a684c

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-87467' into PANDA-FIXES-2.2
2 parents a28702a + 6a0ab5a commit 42a684c

File tree

5 files changed

+64
-13
lines changed

5 files changed

+64
-13
lines changed

app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
namespace Magento\Tax\Model\ResourceModel\Calculation;
77

88
/**
9-
* Tax rate resource model
9+
* Tax rule resource model
1010
*
1111
* @author Magento Core Team <core@magentocommerce.com>
1212
*/

dev/tests/api-functional/framework/Magento/TestFramework/Annotation/ApiDataFixture.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ protected function _getFixtures($scope, \PHPUnit\Framework\TestCase $test)
102102
* Execute single fixture script
103103
*
104104
* @param string|array $fixture
105+
* @throws \Exception
105106
*/
106107
protected function _applyOneFixture($fixture)
107108
{
@@ -112,9 +113,13 @@ protected function _applyOneFixture($fixture)
112113
require $fixture;
113114
}
114115
} catch (\Exception $e) {
115-
echo 'Exception occurred when running the '
116-
. (is_array($fixture) || is_scalar($fixture) ? json_encode($fixture) : 'callback')
117-
. ' fixture: ', PHP_EOL, $e;
116+
throw new \Exception(
117+
sprintf(
118+
"Exception occurred when running the %s fixture: \n%s",
119+
(\is_array($fixture) || is_scalar($fixture) ? json_encode($fixture) : 'callback'),
120+
$e->getMessage()
121+
)
122+
);
118123
}
119124
$this->_appliedFixtures[] = $fixture;
120125
}

dev/tests/integration/testsuite/Magento/Catalog/Block/Adminhtml/Product/Edit/JsTest.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,18 @@ public function testGetAllRatesByProductClassJson()
2929
/** @var \Magento\Catalog\Block\Adminhtml\Product\Edit\Js $block */
3030
$block = $objectManager->create(\Magento\Catalog\Block\Adminhtml\Product\Edit\Js::class);
3131
$jsonResult = $block->getAllRatesByProductClassJson();
32-
$decodedResult = json_decode($jsonResult);
33-
$this->assertNotEmpty($decodedResult, 'Resulting JSON is invalid.');
34-
$taxClassesArray = (array)$decodedResult;
32+
$this->assertJson($jsonResult, 'Resulting JSON is invalid.');
33+
$decodedResult = json_decode($jsonResult, true);
34+
$this->assertNotNull($decodedResult, 'Cannot decode resulting JSON.');
3535
$noneTaxClass = 0;
3636
$defaultProductTaxClass = 2;
3737
$expectedProductTaxClasses = array_unique(
3838
array_merge($fixtureTaxRule->getProductTaxClasses(), [$defaultProductTaxClass, $noneTaxClass])
3939
);
40-
$this->assertCount(
41-
count($expectedProductTaxClasses),
42-
$taxClassesArray,
43-
'Invalid quantity of rates for tax classes.'
44-
);
4540
foreach ($expectedProductTaxClasses as $taxClassId) {
4641
$this->assertArrayHasKey(
4742
"value_{$taxClassId}",
48-
$taxClassesArray,
43+
$decodedResult,
4944
"Rates for tax class with ID '{$taxClassId}' is missing."
5045
);
5146
}

dev/tests/integration/testsuite/Magento/Tax/_files/tax_classes.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@
3838
\Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_PRODUCT
3939
)->save();
4040

41+
// Tax class created but not used in the rule to ensure that unused tax classes are handled properly
42+
$productTaxClass3 = $objectManager->create(
43+
\Magento\Tax\Model\ClassModel::class
44+
)->setClassName(
45+
'ProductTaxClass3'
46+
)->setClassType(
47+
\Magento\Tax\Model\ClassModel::TAX_CLASS_TYPE_PRODUCT
48+
)->save();
49+
4150
$taxRate = [
4251
'tax_country_id' => 'US',
4352
'tax_region_id' => '12',
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var $objectManager \Magento\TestFramework\ObjectManager */
8+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
9+
10+
$taxRules = [
11+
'Test Rule',
12+
'Test Rule Duplicate',
13+
];
14+
$taxClasses = [
15+
'ProductTaxClass1',
16+
'ProductTaxClass2',
17+
'ProductTaxClass3',
18+
'CustomerTaxClass1',
19+
'CustomerTaxClass2',
20+
];
21+
22+
23+
$taxRuleResource = $objectManager->get(\Magento\Tax\Model\ResourceModel\Calculation\Rule::class);
24+
foreach ($taxRules as $taxRuleCode) {
25+
$taxRule = $objectManager->create(\Magento\Tax\Model\Calculation\Rule::class);
26+
$taxRuleResource->load($taxRule, $taxRuleCode, 'code');
27+
$taxRuleResource->delete($taxRule);
28+
}
29+
30+
/** @var \Magento\Tax\Model\ResourceModel\TaxClass $resourceModel */
31+
$resourceModel = $objectManager->get(\Magento\Tax\Model\ResourceModel\TaxClass::class);
32+
33+
foreach ($taxClasses as $taxClass) {
34+
try {
35+
/** @var \Magento\Tax\Model\ClassModel $taxClassEntity */
36+
$taxClassEntity = $objectManager->create(\Magento\Tax\Model\ClassModel::class);
37+
$resourceModel->load($taxClassEntity, $taxClass, 'class_name');
38+
$resourceModel->delete($taxClassEntity);
39+
} catch (\Magento\Framework\Exception\CouldNotDeleteException $couldNotDeleteException) {
40+
// It's okay if the entity already wiped from the database
41+
}
42+
}

0 commit comments

Comments
 (0)