Skip to content

Commit 52be797

Browse files
author
Bomko, Alex(abomko)
committed
Merge pull request #573 from magento-goinc/pr-573
[SWAT] Bug fixes
2 parents f10c7c8 + 0807920 commit 52be797

File tree

20 files changed

+61
-86
lines changed

20 files changed

+61
-86
lines changed

app/code/Magento/Bundle/Model/LinkManagement.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ private function getOptions(\Magento\Catalog\Api\Data\ProductInterface $product)
368368
$product
369369
);
370370

371-
$options = $optionCollection->appendSelections($selectionCollection);
371+
$options = $optionCollection->appendSelections($selectionCollection, true);
372372
return $options;
373373
}
374374

app/code/Magento/Bundle/Model/Product/CopyConstructor/Bundle.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function build(Product $product, Product $duplicate)
2424
return;
2525
}
2626

27-
$bundleOptions = $product->getExtensionAttributes()->getBundleProductOptions();
27+
$bundleOptions = $product->getExtensionAttributes()->getBundleProductOptions() ?: [];
2828
$duplicatedBundleOptions = [];
2929
foreach ($bundleOptions as $key => $bundleOption) {
3030
$duplicatedBundleOptions[$key] = clone $bundleOption;

app/code/Magento/Bundle/Model/Product/Type.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,6 @@ public function getSelectionsCollection($optionIds, $product)
456456
$selectionsCollection = $this->_bundleCollection->create()
457457
->addAttributeToSelect($this->_config->getProductAttributes())
458458
->addAttributeToSelect('tax_class_id')//used for calculation item taxes in Bundle with Dynamic Price
459-
->setFlag('require_stock_items', true)
460459
->setFlag('product_children', true)
461460
->setPositionOrder()
462461
->addStoreFilter($this->getStoreFilter($product))
@@ -806,7 +805,6 @@ public function getSelectionsByIds($selectionIds, $product)
806805
$usedSelections = $this->_bundleCollection
807806
->create()
808807
->addAttributeToSelect('*')
809-
->setFlag('require_stock_items', true)
810808
->setFlag('product_children', true)
811809
->addStoreFilter($this->getStoreFilter($product))
812810
->setStoreId($storeId)

app/code/Magento/Bundle/Test/Unit/Model/LinkManagementTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1048,7 +1048,7 @@ public function getRemoveOptions()
10481048
->will($this->returnValue([]));
10491049

10501050
$this->optionCollection->expects($this->any())->method('appendSelections')
1051-
->with($this->equalTo([]))
1051+
->with($this->equalTo([]), true)
10521052
->will($this->returnValue([$this->option]));
10531053
}
10541054
}

app/code/Magento/Bundle/Test/Unit/Model/Product/CopyConstructor/BundleTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,46 @@ public function testBuildPositive()
8989

9090
$this->model->build($product, $duplicate);
9191
}
92+
93+
/**
94+
* @return void
95+
*/
96+
public function testBuildWithoutOptions()
97+
{
98+
$product = $this->getMockBuilder(Product::class)
99+
->disableOriginalConstructor()
100+
->getMock();
101+
$extensionAttributesProduct = $this->getMockBuilder(ProductExtensionInterface::class)
102+
->setMethods(['getBundleProductOptions'])
103+
->disableOriginalConstructor()
104+
->getMockForAbstractClass();
105+
106+
$product->expects($this->once())
107+
->method('getTypeId')
108+
->willReturn(Type::TYPE_BUNDLE);
109+
$product->expects($this->once())
110+
->method('getExtensionAttributes')
111+
->willReturn($extensionAttributesProduct);
112+
113+
$extensionAttributesProduct->expects($this->once())
114+
->method('getBundleProductOptions')
115+
->willReturn(null);
116+
117+
$duplicate = $this->getMockBuilder(Product::class)
118+
->disableOriginalConstructor()
119+
->getMock();
120+
$extensionAttributesDuplicate = $this->getMockBuilder(ProductExtensionInterface::class)
121+
->setMethods(['setBundleProductOptions'])
122+
->disableOriginalConstructor()
123+
->getMockForAbstractClass();
124+
125+
$duplicate->expects($this->once())
126+
->method('getExtensionAttributes')
127+
->willReturn($extensionAttributesDuplicate);
128+
$extensionAttributesDuplicate->expects($this->once())
129+
->method('setBundleProductOptions')
130+
->with([]);
131+
132+
$this->model->build($product, $duplicate);
133+
}
92134
}

app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1956,7 +1956,6 @@ public function testGetSelectionsByIds()
19561956
->with('*')
19571957
->will($this->returnSelf());
19581958
$flagMap = [
1959-
['require_stock_items', true, $usedSelectionsMock],
19601959
['product_children', true, $usedSelectionsMock],
19611960
];
19621961
$usedSelectionsMock->expects($this->any())

app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product
1414
{
1515
/**
1616
* @var Initialization\StockDataFilter
17+
* @deprecated
1718
*/
1819
protected $stockFilter;
1920

@@ -27,11 +28,6 @@ class NewAction extends \Magento\Catalog\Controller\Adminhtml\Product
2728
*/
2829
protected $resultForwardFactory;
2930

30-
/**
31-
* @var Initialization\Helper
32-
*/
33-
protected $initializationHelper;
34-
3531
/**
3632
* @param Action\Context $context
3733
* @param Builder $productBuilder
@@ -64,20 +60,6 @@ public function execute()
6460
}
6561

6662
$product = $this->productBuilder->build($this->getRequest());
67-
68-
$productData = $this->getRequest()->getPost('product');
69-
if (!$productData) {
70-
$sessionData = $this->_session->getProductData(true);
71-
if (!empty($sessionData['product'])) {
72-
$productData = $sessionData['product'];
73-
}
74-
}
75-
if ($productData) {
76-
$stockData = isset($productData['stock_data']) ? $productData['stock_data'] : [];
77-
$productData['stock_data'] = $this->stockFilter->filter($stockData);
78-
$product = $this->getInitializationHelper()->initializeFromData($product, $productData);
79-
}
80-
8163
$this->_eventManager->dispatch('catalog_product_new_action', ['product' => $product]);
8264

8365
/** @var \Magento\Backend\Model\View\Result\Page $resultPage */
@@ -98,16 +80,4 @@ public function execute()
9880

9981
return $resultPage;
10082
}
101-
102-
/**
103-
* @return Initialization\Helper
104-
* @deprecated
105-
*/
106-
protected function getInitializationHelper()
107-
{
108-
if (null === $this->initializationHelper) {
109-
$this->initializationHelper = ObjectManager::getInstance()->get(Initialization\Helper::class);
110-
}
111-
return $this->initializationHelper;
112-
}
11383
}

app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,11 @@ public function execute()
141141
}
142142
} catch (\Magento\Framework\Exception\LocalizedException $e) {
143143
$this->messageManager->addError($e->getMessage());
144-
$this->_session->setProductData($data);
145144
$this->getDataPersistor()->set('catalog_product', $data);
146145
$redirectBack = $productId ? true : 'new';
147146
} catch (\Exception $e) {
148147
$this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
149148
$this->messageManager->addError($e->getMessage());
150-
$this->_session->setProductData($data);
151149
$this->getDataPersistor()->set('catalog_product', $data);
152150
$redirectBack = $productId ? true : 'new';
153151
}

app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/NewActionTest.php

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,14 @@ protected function setUp()
7070
$resultForwardFactory->expects($this->any())
7171
->method('create')
7272
->willReturn($this->resultForward);
73-
$this->initializationHelper = $this->getMock(Helper::class, [], [], '', false);
74-
$stockDataFilter = $this->getMockBuilder(StockDataFilter::class)
75-
->disableOriginalConstructor()->getMock();
7673

7774
$this->action = (new ObjectManager($this))->getObject(
7875
NewAction::class,
7976
[
8077
'context' => $this->initContext(),
8178
'productBuilder' => $this->productBuilder,
82-
'stockFilter' => $stockDataFilter,
8379
'resultPageFactory' => $resultPageFactory,
8480
'resultForwardFactory' => $resultForwardFactory,
85-
'initializationHelper' => $this->initializationHelper,
8681
]
8782
);
8883

@@ -98,23 +93,4 @@ public function testExecute()
9893
->willReturn('catalog_product_new');
9994
$this->action->execute();
10095
}
101-
102-
public function testExecuteObtainsProductDataFromSession()
103-
{
104-
$this->action->getRequest()->expects($this->any())->method('getParam')->willReturn(true);
105-
$this->action->getRequest()->expects($this->any())->method('getFullActionName')
106-
->willReturn('catalog_product_new');
107-
108-
$productData = ['name' => 'test-name', 'stock_data' => null];
109-
$this->session->expects($this->any())->method('getProductData')
110-
->willReturn(['product' => $productData]);
111-
112-
$this->initializationHelper
113-
->expects($this->once())
114-
->method('initializeFromData')
115-
->with($this->product, $productData)
116-
->willReturn($this->product);
117-
118-
$this->action->execute();
119-
}
12096
}

app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/SaveTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ public function testExecuteSetsProductDataToSessionAndRedirectsToNewActionOnErro
140140
->willReturn($this->product);
141141
$this->product->expects($this->any())->method('getSku')->willThrowException(new $exceptionType(__('message')));
142142

143-
$this->session->expects($this->once())->method('setProductData')->with($productData);
144143
$this->resultRedirect->expects($this->once())->method('setPath')->with('catalog/*/new');
145144

146145
$this->action->execute();

0 commit comments

Comments
 (0)