Skip to content

Commit c49a9d8

Browse files
committed
MAGETWO-58600: Remove uses of unserialize in \Magento\UrlRewrite\Model\UrlRewrite attribute metadata
1 parent cf72ff3 commit c49a9d8

File tree

5 files changed

+47
-12
lines changed

5 files changed

+47
-12
lines changed

app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
*/
66
namespace Magento\CatalogUrlRewrite\Observer;
77

8-
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
9-
108
class UrlRewriteHandler
119
{
1210
/** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */
@@ -130,7 +128,7 @@ public function generateProductUrlRewrites(\Magento\Catalog\Model\Category $cate
130128
* @param int $storeId
131129
* @param bool $saveRewriteHistory
132130
* @param int|null $rootCategoryId
133-
* @return UrlRewrite[]
131+
* @return array
134132
*/
135133
public function getCategoryProductsUrlRewrites(
136134
\Magento\Catalog\Model\Category $category,
@@ -187,15 +185,17 @@ public function deleteCategoryRewritesForChildren(\Magento\Catalog\Model\Categor
187185
foreach ($categoryIds as $categoryId) {
188186
$this->urlPersist->deleteByData(
189187
[
190-
UrlRewrite::ENTITY_ID => $categoryId,
191-
UrlRewrite::ENTITY_TYPE =>
188+
\Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_ID =>
189+
$categoryId,
190+
\Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_TYPE =>
192191
\Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE,
193192
]
194193
);
195194
$this->urlPersist->deleteByData(
196195
[
197-
UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]),
198-
UrlRewrite::ENTITY_TYPE =>
196+
\Magento\UrlRewrite\Service\V1\Data\UrlRewrite::METADATA =>
197+
$this->serializer->serialize(['category_id' => $categoryId]),
198+
\Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_TYPE =>
199199
\Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE,
200200
]
201201
);

app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Category/ChildrenUrlRewriteGeneratorTest.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\CatalogUrlRewrite\Test\Unit\Model\Category;
77

88
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
9+
use Magento\Framework\Serialize\Serializer\Json;
910

1011
class ChildrenUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase
1112
{
@@ -27,8 +28,14 @@ class ChildrenUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase
2728
/** @var \PHPUnit_Framework_MockObject_MockObject */
2829
private $mergeDataProvider;
2930

31+
/** @var \PHPUnit_Framework_MockObject_MockObject */
32+
private $serializerMock;
33+
3034
protected function setUp()
3135
{
36+
$this->serializerMock = $this->getMockBuilder(Json::class)
37+
->disableOriginalConstructor()
38+
->getMock();
3239
$this->childrenCategoriesProvider = $this->getMockBuilder(
3340
\Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider::class
3441
)->disableOriginalConstructor()->getMock();
@@ -84,13 +91,13 @@ public function testGenerate()
8491
->will($this->returnValue($saveRewritesHistory));
8592
$this->categoryUrlRewriteGeneratorFactory->expects($this->once())->method('create')
8693
->will($this->returnValue($this->categoryUrlRewriteGenerator));
87-
$url1 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite();
94+
$url1 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
8895
$url1->setRequestPath('category-1')
8996
->setStoreId(1);
90-
$url2 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite();
97+
$url2 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
9198
$url2->setRequestPath('category-2')
9299
->setStoreId(2);
93-
$url3 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite();
100+
$url3 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
94101
$url3->setRequestPath('category-1')
95102
->setStoreId(1);
96103
$this->categoryUrlRewriteGenerator->expects($this->once())->method('generate')

app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryUrlRewriteGeneratorTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,13 @@
88

99
namespace Magento\CatalogUrlRewrite\Test\Unit\Model;
1010

11-
use Magento\Catalog\Model\Category;
1211
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1312

13+
/**
14+
* Class CategoryUrlRewriteGeneratorTest
15+
*
16+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
17+
*/
1418
class CategoryUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase
1519
{
1620
/** @var \PHPUnit_Framework_MockObject_MockObject */

app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Map/UrlRewriteFinderTest.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
1414
use Magento\CatalogUrlRewrite\Model\Map\DataCategoryUrlRewriteDatabaseMap;
1515
use Magento\CatalogUrlRewrite\Model\Map\DataProductUrlRewriteDatabaseMap;
16+
use Magento\Framework\Serialize\Serializer\Json;
1617

1718
/**
1819
* Class UrlRewriteFinderTest
@@ -34,12 +35,16 @@ class UrlRewriteFinderTest extends \PHPUnit_Framework_TestCase
3435
/** @var UrlRewriteFinder|\PHPUnit_Framework_MockObject_MockObject */
3536
private $model;
3637

38+
/** @var \PHPUnit_Framework_MockObject_MockObject */
39+
private $serializerMock;
40+
3741
protected function setUp()
3842
{
43+
$this->serializerMock = $this->getMock(Json::class, [], [], '', false);
3944
$this->databaseMapPoolMock = $this->getMock(DatabaseMapPool::class, [], [], '', false);
4045
$this->urlFinderMock = $this->getMock(UrlFinderInterface::class);
4146
$this->urlRewriteFactoryMock = $this->getMock(UrlRewriteFactory::class, ['create'], [], '', false);
42-
$this->urlRewritePrototypeMock = new UrlRewrite();
47+
$this->urlRewritePrototypeMock = new UrlRewrite([], $this->serializerMock);
4348

4449
$this->urlRewriteFactoryMock->expects($this->any())
4550
->method('create')

app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
1313
use Magento\UrlRewrite\Model\UrlPersistInterface;
1414
use Magento\Framework\Serialize\Serializer\Json;
15+
use Magento\UrlRewrite\Model\MergeDataProviderFactory;
16+
use \Magento\UrlRewrite\Model\MergeDataProvider;
1517

1618
class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase
1719
{
@@ -45,6 +47,11 @@ class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase
4547
*/
4648
protected $collectionFactoryMock;
4749

50+
/**
51+
* @var MergeDataProviderFactory|\PHPUnit_Framework_MockObject_MockObject
52+
*/
53+
private $mergeDataProviderFactoryMock;
54+
4855
/**
4956
* @var Json|\PHPUnit_Framework_MockObject_MockObject
5057
*/
@@ -68,6 +75,17 @@ protected function setUp()
6875
$this->collectionFactoryMock = $this->getMockBuilder(CollectionFactory::class)
6976
->disableOriginalConstructor()
7077
->getMock();
78+
$this->mergeDataProviderFactoryMock = $this->getMockBuilder(MergeDataProviderFactory::class)
79+
->setMethods(['create'])
80+
->disableOriginalConstructor()
81+
->getMock();
82+
$mergeDataProviderMock = $this->getMockBuilder(MergeDataProvider::class)
83+
->disableOriginalConstructor()
84+
->getMock();
85+
$this->mergeDataProviderFactoryMock->expects($this->any())
86+
->method('create')
87+
->willReturn($mergeDataProviderMock);
88+
7189
$this->serializerMock = $this->getMockBuilder(Json::class)
7290
->disableOriginalConstructor()
7391
->getMock();
@@ -78,6 +96,7 @@ protected function setUp()
7896
$this->productUrlRewriteGeneratorMock,
7997
$this->urlPersistMock,
8098
$this->collectionFactoryMock,
99+
$this->mergeDataProviderFactoryMock,
81100
$this->serializerMock
82101
);
83102
}

0 commit comments

Comments
 (0)