13 private $objectManager;
18 private $storeManager;
23 private $urlRewriteFactory;
28 private $urlPathGenerator;
33 private $urlRewriteGenerator;
40 $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
41 $this->storeManager = $this->getMockBuilder(\
Magento\Store\Model\StoreManagerInterface::class)
42 ->getMockForAbstractClass();
43 $this->urlRewriteFactory = $this->getMockBuilder(\
Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory::class)
44 ->setMethods([
'create'])
45 ->disableOriginalConstructor()
47 $this->urlPathGenerator = $this->getMockBuilder(\
Magento\CmsUrlRewrite\Model\CmsPageUrlPathGenerator::class)
48 ->disableOriginalConstructor()
50 $this->urlRewriteGenerator = $this->objectManager->getObject(
51 \
Magento\CmsUrlRewrite\Model\CmsPageUrlRewriteGenerator::class,
53 'storeManager' => $this->storeManager,
54 'urlRewriteFactory' => $this->urlRewriteFactory,
55 'cmsPageUrlPathGenerator' => $this->urlPathGenerator
62 $initializesStores = [0];
64 $cmsPage = $this->getMockBuilder(\
Magento\Cms\Model\Page::class)
65 ->disableOriginalConstructor()
67 $cmsPage->expects($this->any())->method(
'getStores')->willReturn($initializesStores);
68 $store = $this->getMockBuilder(\
Magento\Store\Api\Data\StoreInterface::class)
69 ->setMethods([
'getStoreId'])
70 ->getMockForAbstractClass();
71 $this->storeManager->expects($this->any())->method(
'getStores')->willReturn([
$store]);
72 $store->expects($this->any())->method(
'getStoreId')->willReturn($initializesStores[0]);
73 $urlRewrite = $this->getMockBuilder(\
Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
74 ->getMockForAbstractClass();
75 $this->urlRewriteFactory->expects($this->any())->method(
'create')->willReturn($urlRewrite);
76 $cmsPage->expects($this->any())->method(
'getId')->willReturn($cmsPageId);
77 $cmsPage->expects($this->any())->method(
'getIdentifier')->willReturn(
'request_path');
78 $this->urlPathGenerator->expects($this->any())->method(
'getCanonicalUrlPath')->with($cmsPage)
79 ->willReturn(
'cms/page/view/page_id/' . $cmsPageId);
81 $urls = $this->urlRewriteGenerator->generate($cmsPage);
82 $this->assertEquals($initializesStores[0],
$urls[0]->getStoreId());
83 $this->assertFalse(isset(
$urls[1]));
88 $initializesStores = [1, 2];
90 $cmsPage = $this->getMockBuilder(\
Magento\Cms\Model\Page::class)
91 ->disableOriginalConstructor()
93 $cmsPage->expects($this->any())->method(
'getStores')->willReturn($initializesStores);
94 $firstStore = $this->getMockBuilder(\
Magento\Store\Api\Data\StoreInterface::class)
95 ->setMethods([
'getStoreId'])
96 ->getMockForAbstractClass();
98 ->setMethods([
'getStoreId'])
99 ->getMockForAbstractClass();
100 $this->storeManager->expects($this->any())->method(
'getStores')->willReturn(
106 $firstStore->expects($this->any())->method(
'getStoreId')->willReturn($initializesStores[0]);
107 $secondStore->expects($this->any())->method(
'getStoreId')->willReturn($initializesStores[1]);
109 $urlRewriteFirst = $this->getMockBuilder(\
Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
110 ->getMockForAbstractClass();
111 $urlRewriteSecond = $this->getMockBuilder(\
Magento\UrlRewrite\Service\V1\Data\UrlRewrite::class)
112 ->getMockForAbstractClass();
113 $this->urlRewriteFactory->expects($this->at(0))->method(
'create')->willReturn($urlRewriteFirst);
114 $this->urlRewriteFactory->expects($this->at(1))->method(
'create')->willReturn($urlRewriteSecond);
116 $cmsPage->expects($this->any())->method(
'getId')->willReturn($cmsPageId);
117 $cmsPage->expects($this->any())->method(
'getIdentifier')->willReturn(
'request_path');
118 $this->urlPathGenerator->expects($this->any())->method(
'getCanonicalUrlPath')->with($cmsPage)
119 ->willReturn(
'cms/page/view/page_id/' . $cmsPageId);
120 $urls = $this->urlRewriteGenerator->generate($cmsPage);
123 $initializesStores[0],
124 $initializesStores[1]
127 $urls[0]->getStoreId(),
128 $urls[1]->getStoreId(),
testGenerateForAllStores()
testGenerateForSpecificStores()