Skip to content

Commit f6e5678

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-61178' into BUGS-2.0
2 parents 29c17ce + 514d4f9 commit f6e5678

File tree

3 files changed

+32
-3
lines changed

3 files changed

+32
-3
lines changed

app/code/Magento/Sales/Model/ResourceModel/Order/Item/Collection.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ protected function _afterLoad()
5555
* Assign parent items
5656
*/
5757
foreach ($this as $item) {
58-
$this->_resource->unserializeFields($item);
5958
if ($item->getParentItemId()) {
6059
$item->setParentItem($this->getItemById($item->getParentItemId()));
6160
}

lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,13 @@ protected function _afterLoad()
571571
parent::_afterLoad();
572572
foreach ($this->_items as $item) {
573573
$item->setOrigData();
574-
if ($this->_resetItemsDataChanged && ($item instanceof \Magento\Framework\Model\AbstractModel)) {
575-
$item->setDataChanges(false);
574+
575+
if ($item instanceof \Magento\Framework\Model\AbstractModel) {
576+
$this->getResource()->unserializeFields($item);
577+
578+
if ($this->_resetItemsDataChanged) {
579+
$item->setDataChanges(false);
580+
}
576581
}
577582
}
578583
$this->_eventManager->dispatch('core_collection_abstract_load_after', ['collection' => $this]);

lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db\Collection;
1010

1111
use Magento\Framework\DB\Select;
12+
use Magento\Framework\Model\AbstractModel;
1213
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
1314
use Magento\Framework\DataObject as MagentoObject;
1415
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
@@ -257,6 +258,30 @@ public function addFieldToSelectDataProvider()
257258
];
258259
}
259260

261+
public function testLoadWithItemFieldsUnserialization()
262+
{
263+
$itemMock = $this->getMockBuilder(AbstractModel::class)
264+
->disableOriginalConstructor()
265+
->getMock();
266+
$this->uut->addItem($itemMock);
267+
268+
$itemMock->expects($this->once())
269+
->method('setOrigData');
270+
$this->resourceMock->expects($this->once())
271+
->method('unserializeFields')
272+
->with($itemMock);
273+
274+
$this->managerMock->expects($this->exactly(2))
275+
->method('dispatch')
276+
->withConsecutive(
277+
['core_collection_abstract_load_before', ['collection' => $this->uut]],
278+
['core_collection_abstract_load_after', ['collection' => $this->uut]]
279+
280+
);
281+
282+
$this->uut->load();
283+
}
284+
260285
/**
261286
* @dataProvider addExpressionFieldToSelectDataProvider
262287
*/

0 commit comments

Comments
 (0)