Skip to content

Commit bdef7e5

Browse files
committed
MAGETWO-63590: [Backport] - [Github] Imported configurable products with multiple super attributes do not retain super attribute ordering #6079 - for 2.0
1 parent 548cb7b commit bdef7e5

File tree

4 files changed

+82
-80
lines changed

4 files changed

+82
-80
lines changed

app/code/Magento/ConfigurableImportExport/Test/Unit/Model/Export/RowCustomizerTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,11 @@ public function getAdditionalRowsCountDataProvider()
175175
];
176176
}
177177

178+
/**
179+
* Init Configurable Data
180+
*
181+
* @return void
182+
*/
178183
private function initConfigurableData()
179184
{
180185
$productIds = [1, 2, 3];

dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Import/Product/Type/ConfigurableTest.php

Lines changed: 67 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ class ConfigurableTest extends \PHPUnit_Framework_TestCase
4242
*/
4343
protected $objectManager;
4444

45-
46-
4745
protected function setUp()
4846
{
4947
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
@@ -71,14 +69,14 @@ public function testConfigurableWithAttributesSortingImport()
7169
'directory' => $directory
7270
]
7371
);
74-
$errors = $this->model->setSource(
75-
$source
76-
)->setParameters(
77-
[
78-
'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
79-
'entity' => 'catalog_product'
80-
]
81-
)->validateData();
72+
$errors = $this->model->setSource($source)
73+
->setParameters(
74+
[
75+
'behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND,
76+
'entity' => 'catalog_product'
77+
]
78+
)
79+
->validateData();
8280

8381
$this->assertTrue($errors->getErrorsCount() == 0);
8482
$this->model->importData();
@@ -113,65 +111,65 @@ public function testConfigurableWithAttributesSortingImport()
113111
];
114112

115113
/** @var \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute $configurableProductOption */
116-
foreach ($configurableProductOptions as $configurableProductOption){
117-
$productAttribute = $configurableProductOption->getProductAttribute();
118-
$productAttributeCode = $productAttribute->getAttributeCode();
119-
$productAttributeData = $productAttribute->getData();
120-
$productAttributeDataExpectation = self::getProductAttributesDataExpectation()[$productAttributeCode];
121-
122-
$productOptionData = $configurableProductOption->getData();
123-
$productOptionLabel = $productOptionData['label'];
124-
$productOptionsDataExpectation = self::getProductOptionsDataExpectation()[$productOptionLabel];
125-
126-
if (isset($attributesPositionExpectation[$productAttributeCode])) {
127-
$expectedPosition = $attributesPositionExpectation[$productAttributeCode];
128-
$this->assertEquals($expectedPosition, $configurableProductOption->getPosition());
129-
}
130-
131-
$this->assertArrayHasKey('product_super_attribute_id', $productOptionData);
132-
$this->assertArrayHasKey('product_id', $productOptionData);
133-
$this->assertArrayHasKey('attribute_id', $productOptionData);
134-
$this->assertArrayHasKey('position', $productOptionData);
135-
$this->assertArrayHasKey('extension_attributes', $productOptionData);
136-
$this->assertArrayHasKey('product_attribute', $productOptionData);
137-
$this->assertArrayHasKey('attribute_id', $productAttributeData);
138-
$this->assertArrayHasKey('entity_type_id', $productAttributeData);
139-
$this->assertArrayHasKey('attribute_code', $productAttributeData);
140-
$this->assertArrayHasKey('frontend_label', $productAttributeData);
141-
$this->assertArrayHasKey('label', $productOptionData);
142-
$this->assertArrayHasKey('use_default', $productOptionData);
143-
$this->assertArrayHasKey('options', $productOptionData);
144-
145-
$this->assertEquals(
146-
$productAttributeDataExpectation['attribute_code'],
147-
$productAttributeData['attribute_code']
148-
);
149-
$this->assertEquals(
150-
$product->getData('entity_id'),
151-
$productOptionData['product_id']);
152-
$this->assertEquals(
153-
$productAttributeDataExpectation['frontend_label'],
154-
$productAttributeData['frontend_label']
155-
);
156-
$this->assertEquals(
157-
$productOptionsDataExpectation['label'],
158-
$productOptionData['label']
159-
);
160-
$this->assertEquals(
161-
$productOptionsDataExpectation['options']['label'],
162-
$productOptionData['options'][0]['label']
163-
);
164-
$this->assertEquals(
165-
$productOptionsDataExpectation['options']['default_label'],
166-
$productOptionData['options'][0]['default_label']
167-
);
168-
$this->assertEquals(
169-
$productOptionsDataExpectation['options']['store_label'],
170-
$productOptionData['options'][0]['store_label']
171-
);
172-
$this->assertArrayHasKey('values', $productOptionData);
173-
$valuesData = $productOptionData['values'];
174-
$this->assertEquals(1, count($valuesData));
114+
foreach ($configurableProductOptions as $configurableProductOption) {
115+
$productAttribute = $configurableProductOption->getProductAttribute();
116+
$productAttributeCode = $productAttribute->getAttributeCode();
117+
$productAttributeData = $productAttribute->getData();
118+
$productAttributeDataExpectation = self::getProductAttributesDataExpectation()[$productAttributeCode];
119+
120+
$productOptionData = $configurableProductOption->getData();
121+
$productOptionLabel = $productOptionData['label'];
122+
$productOptionsDataExpectation = self::getProductOptionsDataExpectation()[$productOptionLabel];
123+
124+
if (isset($attributesPositionExpectation[$productAttributeCode])) {
125+
$expectedPosition = $attributesPositionExpectation[$productAttributeCode];
126+
$this->assertEquals($expectedPosition, $configurableProductOption->getPosition());
127+
}
128+
129+
$this->assertArrayHasKey('product_super_attribute_id', $productOptionData);
130+
$this->assertArrayHasKey('product_id', $productOptionData);
131+
$this->assertArrayHasKey('attribute_id', $productOptionData);
132+
$this->assertArrayHasKey('position', $productOptionData);
133+
$this->assertArrayHasKey('extension_attributes', $productOptionData);
134+
$this->assertArrayHasKey('product_attribute', $productOptionData);
135+
$this->assertArrayHasKey('attribute_id', $productAttributeData);
136+
$this->assertArrayHasKey('entity_type_id', $productAttributeData);
137+
$this->assertArrayHasKey('attribute_code', $productAttributeData);
138+
$this->assertArrayHasKey('frontend_label', $productAttributeData);
139+
$this->assertArrayHasKey('label', $productOptionData);
140+
$this->assertArrayHasKey('use_default', $productOptionData);
141+
$this->assertArrayHasKey('options', $productOptionData);
142+
143+
$this->assertEquals(
144+
$productAttributeDataExpectation['attribute_code'],
145+
$productAttributeData['attribute_code']
146+
);
147+
$this->assertEquals(
148+
$product->getData('entity_id'),
149+
$productOptionData['product_id']);
150+
$this->assertEquals(
151+
$productAttributeDataExpectation['frontend_label'],
152+
$productAttributeData['frontend_label']
153+
);
154+
$this->assertEquals(
155+
$productOptionsDataExpectation['label'],
156+
$productOptionData['label']
157+
);
158+
$this->assertEquals(
159+
$productOptionsDataExpectation['options']['label'],
160+
$productOptionData['options'][0]['label']
161+
);
162+
$this->assertEquals(
163+
$productOptionsDataExpectation['options']['default_label'],
164+
$productOptionData['options'][0]['default_label']
165+
);
166+
$this->assertEquals(
167+
$productOptionsDataExpectation['options']['store_label'],
168+
$productOptionData['options'][0]['store_label']
169+
);
170+
$this->assertArrayHasKey('values', $productOptionData);
171+
$valuesData = $productOptionData['values'];
172+
$this->assertEquals(1, count($valuesData));
175173
}
176174
}
177175

@@ -189,8 +187,6 @@ private function getProductOptionsDataExpectation()
189187
'store_label' => 'Option 1'
190188
]
191189
],
192-
193-
194190
'Test attribute 2' => [
195191
'label' => 'Test attribute 2',
196192
'options' => [

dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Import/_files/configurable_attributes.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@
55
*/
66

77
/** @var \Magento\Eav\Model\Config $eavConfig */
8-
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Eav\Model\Config');
8+
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Eav\Model\Config::class);
99
/** @var $installer \Magento\Catalog\Setup\CategorySetup */
10-
$installer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Catalog\Setup\CategorySetup');
10+
$installer = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Catalog\Setup\CategorySetup::class);
1111

1212
/** @var $attributes array */
1313
$attributes = [
1414
[
1515
'code' => 'test_attribute_1',
1616
'label' => 'Test attribute 1'
17-
], [
17+
],
18+
[
1819
'code' => 'test_attribute_2',
1920
'label' => 'Test attribute 2'
2021
]
@@ -35,7 +36,7 @@
3536
/* Create attribute */
3637
/** @var $attribute \Magento\Catalog\Model\ResourceModel\Eav\Attribute */
3738
$attribute = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
38-
'Magento\Catalog\Model\ResourceModel\Eav\Attribute'
39+
\Magento\Catalog\Model\ResourceModel\Eav\Attribute::class
3940
);
4041

4142
$attribute->setData(
@@ -70,11 +71,10 @@
7071

7172
/* Assign attribute to attribute set */
7273
$installer->addAttributeToGroup('catalog_product', 'Default', 'General', $attribute->getId());
73-
7474
}
7575

7676
/** @var \Magento\Eav\Model\Config $eavConfig */
77-
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Eav\Model\Config');
77+
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Eav\Model\Config::class);
7878
$eavConfig->clear();
7979

8080

dev/tests/integration/testsuite/Magento/ConfigurableImportExport/Model/Import/_files/configurable_attributes_rollback.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@
55
*/
66

77
/** @var \Magento\Framework\Registry $registry */
8-
$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry');
8+
$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\Registry::class);
99

1010
$registry->unregister('isSecureArea');
1111
$registry->register('isSecureArea', true);
1212

13-
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Eav\Model\Config');
13+
$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Eav\Model\Config::class);
1414
/** @var $attributes array */
1515
$attributes = [
1616
[
1717
'code' => 'test_attribute_1',
1818
'label' => 'Test attribute 1'
19-
], [
19+
],
20+
[
2021
'code' => 'test_attribute_2',
2122
'label' => 'Test attribute 2'
2223
]

0 commit comments

Comments
 (0)