Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
PageTest.php
Go to the documentation of this file.
1 <?php
7 
14 
19 class PageTest extends \PHPUnit\Framework\TestCase
20 {
24  protected $model;
25 
29  protected $contextMock;
30 
34  protected $eventManagerMock;
35 
39  protected $resourcePageMock;
40 
44  protected $resourcesMock;
45 
49  protected $scopeConfigMock;
50 
51  protected function setUp()
52  {
53  $this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class)
54  ->disableOriginalConstructor()
55  ->getMock();
56  $this->contextMock = $this->getMockBuilder(Context::class)
57  ->disableOriginalConstructor()
58  ->getMock();
59  $this->resourcePageMock = $this->getMockBuilder(PageResource::class)
60  ->disableOriginalConstructor()
61  ->setMethods(['getIdFieldName', 'checkIdentifier', 'getResources'])
62  ->getMock();
63  $this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class)
64  ->disableOriginalConstructor()
65  ->getMock();
66  $this->resourcesMock = $this->getMockBuilder(AbstractResource::class)
67  ->setMethods(['getIdFieldName', 'load', 'checkIdentifier'])
68  ->getMockForAbstractClass();
69  $this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class)
70  ->getMockForAbstractClass();
71 
72  $this->contextMock->expects($this->any())
73  ->method('getEventDispatcher')
74  ->willReturn($this->eventManagerMock);
75  $this->resourcePageMock->expects($this->any())
76  ->method('getResources')
77  ->willReturn($this->resourcesMock);
78 
79  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
80 
81  $this->model = $objectManager->getObject(
82  Page::class,
83  [
84  'context' => $this->contextMock,
85  'resource' => $this->resourcesMock,
86  ]
87  );
88  $objectManager->setBackwardCompatibleProperty(
89  $this->model,
90  'scopeConfig',
91  $this->scopeConfigMock
92  );
93  }
94 
98  public function testNoRoutePage()
99  {
100  $this->assertEquals($this->model, $this->model->noRoutePage());
101  }
102 
106  public function testCheckIdentifier()
107  {
108  $identifier = 1;
109  $storeId = 2;
110  $fetchOneResult = 'some result';
111 
112  $this->resourcesMock->expects($this->atLeastOnce())
113  ->method('checkIdentifier')
114  ->with($identifier, $storeId)
115  ->willReturn($fetchOneResult);
116 
117  $this->assertInternalType('string', $this->model->checkIdentifier($identifier, $storeId));
118  }
119 
124  public function testBeforeSave404Identifier()
125  {
126  $this->model->setId(1);
127  $this->model->setOrigData('identifier', 'no-route');
128  $this->model->setIdentifier('no-route2');
129 
130  $this->scopeConfigMock->expects($this->once())
131  ->method('getValue')
132  ->willReturnMap(
133  [
134  [
135  \Magento\Cms\Helper\Page::XML_PATH_NO_ROUTE_PAGE,
137  null,
138  'no-route'
139  ]
140  ]
141  );
142 
143  $this->model->beforeSave();
144  }
145 
151  {
152  $this->model->setId(1);
153  $this->model->setOrigData('identifier', 'home');
154  $this->model->setIdentifier('home2');
155 
156  $this->scopeConfigMock->expects($this->atLeastOnce())
157  ->method('getValue')
158  ->willReturnMap(
159  [
160  [
161  \Magento\Cms\Helper\Page::XML_PATH_HOME_PAGE,
163  null,
164  'home'
165  ]
166  ]
167  );
168 
169  $this->model->beforeSave();
170  }
171 
177  {
178  $this->model->setId(1);
179  $this->model->setOrigData('identifier', 'no-cookies');
180  $this->model->setIdentifier('no-cookies2');
181 
182  $this->scopeConfigMock->expects($this->atLeastOnce())
183  ->method('getValue')
184  ->willReturnMap(
185  [
186  [
187  \Magento\Cms\Helper\Page::XML_PATH_NO_COOKIES_PAGE,
189  null,
190  'no-cookies'
191  ]
192  ]
193  );
194 
195  $this->model->beforeSave();
196  }
197 }
$objectManager
Definition: bootstrap.php:17