From c49a9d8be24a331e60f80c24e7eb2217e62f20d6 Mon Sep 17 00:00:00 2001 From: Stanislav Lopukhov <slopukhov@magento.com> Date: Mon, 16 Jan 2017 15:08:36 +0200 Subject: [PATCH] MAGETWO-58600: Remove uses of unserialize in \Magento\UrlRewrite\Model\UrlRewrite attribute metadata --- .../Observer/UrlRewriteHandler.php | 14 +++++++------- .../ChildrenUrlRewriteGeneratorTest.php | 13 ++++++++++--- .../Model/CategoryUrlRewriteGeneratorTest.php | 6 +++++- .../Unit/Model/Map/UrlRewriteFinderTest.php | 7 ++++++- .../Unit/Observer/UrlRewriteHandlerTest.php | 19 +++++++++++++++++++ 5 files changed, 47 insertions(+), 12 deletions(-) diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php index cab6bdcdf34..9d531506755 100644 --- a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php +++ b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php @@ -5,8 +5,6 @@ */ namespace Magento\CatalogUrlRewrite\Observer; -use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; - class UrlRewriteHandler { /** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */ @@ -130,7 +128,7 @@ class UrlRewriteHandler * @param int $storeId * @param bool $saveRewriteHistory * @param int|null $rootCategoryId - * @return UrlRewrite[] + * @return array */ public function getCategoryProductsUrlRewrites( \Magento\Catalog\Model\Category $category, @@ -187,15 +185,17 @@ class UrlRewriteHandler foreach ($categoryIds as $categoryId) { $this->urlPersist->deleteByData( [ - UrlRewrite::ENTITY_ID => $categoryId, - UrlRewrite::ENTITY_TYPE => + \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_ID => + $categoryId, + \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE, ] ); $this->urlPersist->deleteByData( [ - UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]), - UrlRewrite::ENTITY_TYPE => + \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::METADATA => + $this->serializer->serialize(['category_id' => $categoryId]), + \Magento\UrlRewrite\Service\V1\Data\UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE, ] ); diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Category/ChildrenUrlRewriteGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Category/ChildrenUrlRewriteGeneratorTest.php index f41d35f7688..6ff97830c8e 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Category/ChildrenUrlRewriteGeneratorTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Category/ChildrenUrlRewriteGeneratorTest.php @@ -6,6 +6,7 @@ namespace Magento\CatalogUrlRewrite\Test\Unit\Model\Category; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +use Magento\Framework\Serialize\Serializer\Json; class ChildrenUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase { @@ -27,8 +28,14 @@ class ChildrenUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase /** @var \PHPUnit_Framework_MockObject_MockObject */ private $mergeDataProvider; + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $serializerMock; + protected function setUp() { + $this->serializerMock = $this->getMockBuilder(Json::class) + ->disableOriginalConstructor() + ->getMock(); $this->childrenCategoriesProvider = $this->getMockBuilder( \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider::class )->disableOriginalConstructor()->getMock(); @@ -84,13 +91,13 @@ class ChildrenUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue($saveRewritesHistory)); $this->categoryUrlRewriteGeneratorFactory->expects($this->once())->method('create') ->will($this->returnValue($this->categoryUrlRewriteGenerator)); - $url1 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite(); + $url1 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock); $url1->setRequestPath('category-1') ->setStoreId(1); - $url2 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite(); + $url2 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock); $url2->setRequestPath('category-2') ->setStoreId(2); - $url3 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite(); + $url3 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock); $url3->setRequestPath('category-1') ->setStoreId(1); $this->categoryUrlRewriteGenerator->expects($this->once())->method('generate') diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryUrlRewriteGeneratorTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryUrlRewriteGeneratorTest.php index 83d481c347e..cfc6243525f 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryUrlRewriteGeneratorTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/CategoryUrlRewriteGeneratorTest.php @@ -8,9 +8,13 @@ namespace Magento\CatalogUrlRewrite\Test\Unit\Model; -use Magento\Catalog\Model\Category; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; +/** + * Class CategoryUrlRewriteGeneratorTest + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class CategoryUrlRewriteGeneratorTest extends \PHPUnit_Framework_TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject */ diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Map/UrlRewriteFinderTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Map/UrlRewriteFinderTest.php index b0c4500dab3..fbabbba6a27 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Map/UrlRewriteFinderTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Model/Map/UrlRewriteFinderTest.php @@ -13,6 +13,7 @@ use Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory; use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; use Magento\CatalogUrlRewrite\Model\Map\DataCategoryUrlRewriteDatabaseMap; use Magento\CatalogUrlRewrite\Model\Map\DataProductUrlRewriteDatabaseMap; +use Magento\Framework\Serialize\Serializer\Json; /** * Class UrlRewriteFinderTest @@ -34,12 +35,16 @@ class UrlRewriteFinderTest extends \PHPUnit_Framework_TestCase /** @var UrlRewriteFinder|\PHPUnit_Framework_MockObject_MockObject */ private $model; + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $serializerMock; + protected function setUp() { + $this->serializerMock = $this->getMock(Json::class, [], [], '', false); $this->databaseMapPoolMock = $this->getMock(DatabaseMapPool::class, [], [], '', false); $this->urlFinderMock = $this->getMock(UrlFinderInterface::class); $this->urlRewriteFactoryMock = $this->getMock(UrlRewriteFactory::class, ['create'], [], '', false); - $this->urlRewritePrototypeMock = new UrlRewrite(); + $this->urlRewritePrototypeMock = new UrlRewrite([], $this->serializerMock); $this->urlRewriteFactoryMock->expects($this->any()) ->method('create') diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php index 3ded5d6512b..2c139d8f395 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php @@ -12,6 +12,8 @@ use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory; use Magento\UrlRewrite\Model\UrlPersistInterface; use Magento\Framework\Serialize\Serializer\Json; +use Magento\UrlRewrite\Model\MergeDataProviderFactory; +use \Magento\UrlRewrite\Model\MergeDataProvider; class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase { @@ -45,6 +47,11 @@ class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase */ protected $collectionFactoryMock; + /** + * @var MergeDataProviderFactory|\PHPUnit_Framework_MockObject_MockObject + */ + private $mergeDataProviderFactoryMock; + /** * @var Json|\PHPUnit_Framework_MockObject_MockObject */ @@ -68,6 +75,17 @@ class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase $this->collectionFactoryMock = $this->getMockBuilder(CollectionFactory::class) ->disableOriginalConstructor() ->getMock(); + $this->mergeDataProviderFactoryMock = $this->getMockBuilder(MergeDataProviderFactory::class) + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $mergeDataProviderMock = $this->getMockBuilder(MergeDataProvider::class) + ->disableOriginalConstructor() + ->getMock(); + $this->mergeDataProviderFactoryMock->expects($this->any()) + ->method('create') + ->willReturn($mergeDataProviderMock); + $this->serializerMock = $this->getMockBuilder(Json::class) ->disableOriginalConstructor() ->getMock(); @@ -78,6 +96,7 @@ class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase $this->productUrlRewriteGeneratorMock, $this->urlPersistMock, $this->collectionFactoryMock, + $this->mergeDataProviderFactoryMock, $this->serializerMock ); } -- GitLab