Skip to content

Commit 158a0c6

Browse files
committed
Merge branch 'MAGETWO-60742' into 2.1.8-develop-pr7
2 parents cf8d1af + 44da7a5 commit 158a0c6

File tree

6 files changed

+46
-9
lines changed

6 files changed

+46
-9
lines changed

app/code/Magento/ConfigurableProduct/Controller/Adminhtml/Product/Initialization/Helper/Plugin/Configurable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public function afterInitialize(Helper $subject, ProductInterface $product)
9595
$product->setAttributeSetId($setId);
9696
}
9797
$extensionAttributes = $product->getExtensionAttributes();
98-
98+
$product->getResource()->getSortedAttributes($setId);
9999
$product->setNewVariationsAttributeSetId($setId);
100100

101101
$configurableOptions = [];

app/code/Magento/ConfigurableProduct/Test/Unit/Controller/Adminhtml/Product/Initialization/Helper/Plugin/ConfigurableTest.php

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
use Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper;
99
use Magento\Catalog\Model\Product;
10+
use Magento\Catalog\Model\ResourceModel\Product as ProductResource;
1011
use Magento\ConfigurableProduct\Controller\Adminhtml\Product\Initialization\Helper\Plugin\Configurable;
1112
use Magento\ConfigurableProduct\Helper\Product\Options\Factory;
1213
use Magento\ConfigurableProduct\Model\Product\Type\Configurable as ConfigurableProduct;
@@ -74,7 +75,7 @@ protected function setUp()
7475
->disableOriginalConstructor()
7576
->setMethods([
7677
'getTypeId', 'setAttributeSetId', 'getExtensionAttributes', 'setNewVariationsAttributeSetId',
77-
'setCanSaveConfigurableAttributes', 'setExtensionAttributes', 'hasData', 'getData'
78+
'setCanSaveConfigurableAttributes', 'setExtensionAttributes', 'hasData', 'getData', 'getResource'
7879
])
7980
->getMock();
8081

@@ -94,6 +95,9 @@ protected function setUp()
9495
*/
9596
public function testAfterInitializeWithAttributesAndVariations()
9697
{
98+
$postValue = 24;
99+
$productResourceMock = $this->getProductResource($postValue);
100+
97101
$attributes = [
98102
['attribute_id' => 90, 'values' => [
99103
['value_index' => 12], ['value_index' => 13]
@@ -152,7 +156,7 @@ public function testAfterInitializeWithAttributesAndVariations()
152156
'configurable-matrix' => $simpleProducts
153157
];
154158
$valueMap = [
155-
['new-variations-attribute-set-id', null, 24],
159+
['new-variations-attribute-set-id', null, $postValue],
156160
['product', [], $productData]
157161
];
158162

@@ -164,20 +168,24 @@ public function testAfterInitializeWithAttributesAndVariations()
164168
->method('getTypeId')
165169
->willReturn(ConfigurableProduct::TYPE_CODE);
166170

167-
$this->product->expects(static::at(4))
171+
$this->product->expects(static::at(5))
168172
->method('hasData')
169173
->with('associated_product_ids')
170174
->willReturn(false);
171-
$this->product->expects(static::at(5))
175+
$this->product->expects(static::at(6))
172176
->method('hasData')
173177
->with('configurable-matrix')
174178
->willReturn(true);
175179

176-
$this->product->expects(static::at(6))
180+
$this->product->expects(static::at(7))
177181
->method('getData')
178182
->with('configurable-matrix')
179183
->willReturn($simpleProducts);
180184

185+
$this->product->expects(static::once())
186+
->method('getResource')
187+
->willReturn($productResourceMock);
188+
181189
$this->request->expects(static::any())
182190
->method('getPost')
183191
->willReturnMap($valueMap);
@@ -225,6 +233,9 @@ public function testAfterInitializeWithAttributesAndVariations()
225233

226234
public function testAfterInitializeWithAttributesAndWithoutVariations()
227235
{
236+
$postValue = 24;
237+
$productResourceMock = $this->getProductResource($postValue);
238+
228239
$attributes = [
229240
['attribute_id' => 90, 'values' => [
230241
['value_index' => 12], ['value_index' => 13]
@@ -238,7 +249,7 @@ public function testAfterInitializeWithAttributesAndWithoutVariations()
238249
];
239250

240251
$valueMap = [
241-
['new-variations-attribute-set-id', null, 24],
252+
['new-variations-attribute-set-id', null, $postValue],
242253
['product', [], $productData],
243254
];
244255
$paramValueMap = [
@@ -254,6 +265,9 @@ public function testAfterInitializeWithAttributesAndWithoutVariations()
254265
$this->product->expects(static::at(0))
255266
->method('getData')
256267
->willReturn(ConfigurableProduct::TYPE_CODE);
268+
$this->product->expects(static::once())
269+
->method('getResource')
270+
->willReturn($productResourceMock);
257271

258272
$this->request->expects(static::any())
259273
->method('getPost')
@@ -331,4 +345,21 @@ public function testAfterInitializeForNotConfigurableProduct()
331345
->method('generateSimpleProducts');
332346
$this->plugin->afterInitialize($this->subject, $this->product);
333347
}
348+
349+
/**
350+
* generate product resource model mock
351+
* @param $postValue
352+
* @return \PHPUnit_Framework_MockObject_MockObject
353+
*/
354+
private function getProductResource($postValue)
355+
{
356+
$productResourceMock = $this->getMockBuilder(ProductResource::class)
357+
->disableOriginalConstructor()
358+
->getMock();
359+
$productResourceMock->expects(static::once())
360+
->method('getSortedAttributes')
361+
->with($postValue);
362+
363+
return $productResourceMock;
364+
}
334365
}

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductForm.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class AssertConfigurableProductForm extends AssertProductForm
6060
*/
6161
protected $skippedVariationMatrixFields = [
6262
'configurable_attribute',
63+
'special_price'
6364
];
6465

6566
/**

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Constraint/AssertConfigurableProductPage.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ protected function getLowestConfigurablePrice()
129129
if ($price > $option['price']) {
130130
$price = $option['price'];
131131
}
132+
if (isset($option['special_price']) && $price > $option['special_price']) {
133+
$price = $option['special_price'];
134+
}
132135
}
133136

134137
return $price;

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Fixture/ConfigurableProduct/ConfigurableAttributesData.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,8 @@ protected function prepareVariationsMatrix(array $data)
292292
'sku' => $product->getSku(),
293293
'qty' => $quantityAndStockStatus['qty'],
294294
'weight' => $product->getWeight(),
295-
'price' => $product->getPrice()
295+
'price' => $product->getPrice(),
296+
'special_price' => $product->getSpecialPrice()
296297
];
297298
$this->variationsMatrix[$key] = array_replace_recursive($this->variationsMatrix[$key], $productData);
298299
} else {
@@ -381,6 +382,7 @@ protected function prepareData()
381382
'price',
382383
'qty',
383384
'weight',
385+
'special_price'
384386
];
385387

386388
$this->data = [

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/TestCase/CreateConfigurableProductEntityTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<constraint name="Magento\ConfigurableProduct\Test\Constraint\AssertConfigurableProductInCart" />
5555
</variation>
5656
<variation name="CreateConfigurableProductEntityTestVariation3" summary="Create product with special price">
57-
<data name="tag" xsi:type="string">to_maintain:yes</data>
57+
<data name="tag" xsi:type="string">to_maintain:no</data>
5858
<data name="product/data/url_key" xsi:type="string">configurable-product-%isolation%</data>
5959
<data name="product/data/configurable_attributes_data/dataset" xsi:type="string">two_options_with_assigned_product_special_price</data>
6060
<data name="product/data/checkout_data/dataset" xsi:type="string">configurable_two_new_options_with_special_price</data>

0 commit comments

Comments
 (0)