14 private $childrenUrlRewriteGenerator;
20 private $childrenCategoriesProvider;
23 private $categoryUrlRewriteGeneratorFactory;
26 private $categoryUrlRewriteGenerator;
29 private $mergeDataProvider;
32 private $serializerMock;
36 $this->serializerMock = $this->getMockBuilder(Json::class)
37 ->disableOriginalConstructor()
39 $this->childrenCategoriesProvider = $this->getMockBuilder(
40 \
Magento\CatalogUrlRewrite\Model\
Category\ChildrenCategoriesProvider::class
41 )->disableOriginalConstructor()->getMock();
42 $this->category = $this->getMockBuilder(\
Magento\Catalog\Model\Category::class)
43 ->disableOriginalConstructor()->getMock();
44 $this->categoryUrlRewriteGeneratorFactory = $this->getMockBuilder(
45 \
Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGeneratorFactory::class
46 )->disableOriginalConstructor()->setMethods([
'create'])->getMock();
47 $this->categoryUrlRewriteGenerator = $this->getMockBuilder(
48 \
Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::class
49 )->disableOriginalConstructor()->getMock();
50 $mergeDataProviderFactory = $this->createPartialMock(
54 $this->mergeDataProvider = new \Magento\UrlRewrite\Model\MergeDataProvider();
55 $mergeDataProviderFactory->expects($this->once())->method(
'create')->willReturn($this->mergeDataProvider);
57 $this->childrenUrlRewriteGenerator = (
new ObjectManager($this))->getObject(
58 \
Magento\CatalogUrlRewrite\Model\
Category\ChildrenUrlRewriteGenerator::class,
60 'childrenCategoriesProvider' => $this->childrenCategoriesProvider,
61 'categoryUrlRewriteGeneratorFactory' => $this->categoryUrlRewriteGeneratorFactory,
62 'mergeDataProviderFactory' => $mergeDataProviderFactory
69 $this->childrenCategoriesProvider->expects($this->once())->method(
'getChildren')->with($this->category,
true)
70 ->will($this->returnValue([]));
72 $this->assertEquals([], $this->childrenUrlRewriteGenerator->generate(
'store_id', $this->category));
78 $saveRewritesHistory =
'flag';
80 $childCategory = $this->getMockBuilder(\
Magento\Catalog\Model\Category::class)
81 ->disableOriginalConstructor()->getMock();
82 $childCategory->expects($this->once())->method(
'setStoreId')->with(
$storeId);
83 $childCategory->expects($this->once())->method(
'setData')
84 ->with(
'save_rewrites_history', $saveRewritesHistory);
85 $this->childrenCategoriesProvider->expects($this->once())->method(
'getChildren')->with($this->category,
true)
86 ->will($this->returnValue([$childCategory]));
87 $this->category->expects($this->any())->method(
'getData')->with(
'save_rewrites_history')
88 ->will($this->returnValue($saveRewritesHistory));
89 $this->categoryUrlRewriteGeneratorFactory->expects($this->once())->method(
'create')
90 ->will($this->returnValue($this->categoryUrlRewriteGenerator));
91 $url1 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
92 $url1->setRequestPath(
'category-1')
94 $url2 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
95 $url2->setRequestPath(
'category-2')
97 $url3 = new \Magento\UrlRewrite\Service\V1\Data\UrlRewrite([], $this->serializerMock);
98 $url3->setRequestPath(
'category-1')
100 $this->categoryUrlRewriteGenerator->expects($this->once())->method(
'generate')
101 ->with($childCategory,
false, 1)
102 ->will($this->returnValue([$url1, $url2, $url3]));
105 [
'category-1_1' => $url1,
'category-2_2' => $url2],
106 $this->childrenUrlRewriteGenerator->generate(
$storeId, $this->category, 1)
testNoChildrenCategories()