21 private $eventManagerMock;
26 private $pageFactoryMock;
31 private $storeManagerMock;
41 private $actionFactoryMock;
45 $this->eventManagerMock = $this->getMockBuilder(\
Magento\Framework\Event\ManagerInterface::class)
46 ->getMockForAbstractClass();
48 $this->pageFactoryMock = $this->getMockBuilder(\
Magento\Cms\Model\PageFactory::class)
49 ->disableOriginalConstructor()
50 ->setMethods([
'create'])
53 $this->storeMock = $this->getMockBuilder(\
Magento\Store\Api\Data\StoreInterface::class)
54 ->getMockForAbstractClass();
56 $this->storeManagerMock = $this->getMockBuilder(\
Magento\Store\Model\StoreManagerInterface::class)
57 ->getMockForAbstractClass();
58 $this->storeManagerMock->expects($this->any())
60 ->willReturn($this->storeMock);
62 $this->actionFactoryMock = $this->getMockBuilder(\
Magento\Framework\
App\ActionFactory::class)
63 ->disableOriginalConstructor()
66 $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
67 $this->router = $objectManagerHelper->getObject(
68 \
Magento\Cms\Controller\Router::class,
70 'eventManager' => $this->eventManagerMock,
71 'pageFactory' => $this->pageFactoryMock,
72 'storeManager' => $this->storeManagerMock,
73 'actionFactory' => $this->actionFactoryMock,
78 public function testMatchCmsControllerRouterMatchBeforeEventParams()
80 $identifier =
'/test';
81 $trimmedIdentifier =
'test';
86 $requestMock = $this->getMockBuilder(\
Magento\Framework\
App\RequestInterface::class)
95 ->getMockForAbstractClass();
96 $requestMock->expects($this->once())
97 ->method(
'getPathInfo')
98 ->willReturn($identifier);
99 $requestMock->expects($this->once())
100 ->method(
'setModuleName')
103 $requestMock->expects($this->once())
104 ->method(
'setControllerName')
107 $requestMock->expects($this->once())
108 ->method(
'setActionName')
111 $requestMock->expects($this->once())
113 ->with(
'page_id', $pageId)
115 $requestMock->expects($this->once())
117 ->with(\
Magento\Framework\Url::REWRITE_REQUEST_PATH_ALIAS, $trimmedIdentifier)
120 $condition = new \Magento\Framework\DataObject([
'identifier' => $trimmedIdentifier,
'continue' =>
true]);
122 $this->eventManagerMock->expects($this->once())
125 'cms_controller_router_match_before',
127 'router' => $this->router,
128 'condition' => $condition,
133 $pageMock = $this->getMockBuilder(\
Magento\Cms\Model\Page::class)
134 ->disableOriginalConstructor()
136 $pageMock->expects($this->once())
137 ->method(
'checkIdentifier')
138 ->with($trimmedIdentifier,
$storeId)
139 ->willReturn($pageId);
141 $this->pageFactoryMock->expects($this->once())
143 ->willReturn($pageMock);
145 $this->storeMock->expects($this->once())
149 $actionMock = $this->getMockBuilder(\
Magento\Framework\
App\ActionInterface::class)
150 ->getMockForAbstractClass();
152 $this->actionFactoryMock->expects($this->once())
154 ->with(\
Magento\Framework\
App\Action\Forward::class)
155 ->willReturn($actionMock);
157 $this->assertEquals($actionMock, $this->router->match($requestMock));