diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php index cab6bdcdf342f1fbddee231b8172fa250d8b5a7b..9d53150675518ced86b210d17367fdc3fec714a1 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 f41d35f7688f3b4e2b88d1dfaa61ef1218d6a842..6ff97830c8e8fb95f740143b08ad521dd14322f4 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 83d481c347ea139ce23ced6572d7843396c66c5c..cfc6243525f42240136394befa6b3c5dfe4ea49f 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 b0c4500dab3e02f4d35aed41eb57b54a3e54cfd4..fbabbba6a270476418bce3f8604cf05cc6bb23de 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 3ded5d6512bdbaa6c933cc09c38668206ca9c390..2c139d8f3957e58b8e7cef0e041dc932eff5b87c 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 ); }