13
13
use Magento \Authorization \Model \RulesFactory ;
14
14
use Magento \Cms \Api \Data \PageInterface ;
15
15
use Magento \Cms \Api \Data \PageInterfaceFactory ;
16
+ use Magento \Cms \Model \ResourceModel \Page as PageResource ;
16
17
use Magento \Cms \Ui \Component \DataProvider as CmsDataProvider ;
17
18
use Magento \Framework \Api \DataObjectHelper ;
18
19
use Magento \Framework \Api \FilterBuilder ;
@@ -85,7 +86,7 @@ class PageRepositoryTest extends WebapiAbstract
85
86
private $ adminTokens ;
86
87
87
88
/**
88
- * @var array
89
+ * @var PageInterface[]
89
90
*/
90
91
private $ createdPages = [];
91
92
@@ -110,9 +111,9 @@ class PageRepositoryTest extends WebapiAbstract
110
111
private $ cmsUiDataProvider ;
111
112
112
113
/**
113
- * @var GetPageByIdentifierInterface
114
+ * @var PageResource
114
115
*/
115
- private $ getPageByIdentifier ;
116
+ private $ pageResource ;
116
117
117
118
/**
118
119
* @inheritdoc
@@ -137,7 +138,7 @@ protected function setUp(): void
137
138
'requestFieldName ' => 'id ' ,
138
139
]
139
140
);
140
- $ this ->getPageByIdentifier = $ this ->objectManager ->get (GetPageByIdentifierInterface ::class);
141
+ $ this ->pageResource = $ this ->objectManager ->get (PageResource ::class);
141
142
}
142
143
143
144
/**
@@ -151,7 +152,9 @@ protected function tearDown(): void
151
152
}
152
153
153
154
foreach ($ this ->createdPages as $ page ) {
154
- $ this ->pageRepository ->delete ($ page );
155
+ if ($ page ->getId ()) {
156
+ $ this ->pageRepository ->delete ($ page );
157
+ }
155
158
}
156
159
}
157
160
@@ -195,7 +198,7 @@ public function testGetByStores(string $requestStore): void
195
198
{
196
199
$ newStoreId = $ this ->getStoreIdByRequestStore ($ requestStore );
197
200
$ this ->updatePage ('page100 ' , 0 , ['store_id ' => $ newStoreId ]);
198
- $ page = $ this ->getPageByIdentifier -> execute ('page100 ' , $ newStoreId );
201
+ $ page = $ this ->loadPageByIdentifier ('page100 ' , $ newStoreId );
199
202
$ expectedData = array_intersect_key (
200
203
$ this ->dataObjectProcessor ->buildOutputDataArray ($ page , PageInterface::class),
201
204
$ this ->getPageRequestData ()['page ' ]
@@ -257,7 +260,10 @@ public function testCreateByStores(string $requestStore): void
257
260
$ requestData = $ this ->getPageRequestData ();
258
261
259
262
$ page = $ this ->_webApiCall ($ serviceInfo , $ requestData , null , $ requestStore );
260
- $ this ->currentPage = $ this ->getPageByIdentifier ($ requestData ['page ' ][PageInterface::IDENTIFIER ], $ newStoreId );
263
+ $ this ->createdPages [] = $ this ->loadPageByIdentifier (
264
+ $ requestData ['page ' ][PageInterface::IDENTIFIER ],
265
+ $ newStoreId
266
+ );
261
267
$ this ->assertResponseData ($ page , $ requestData ['page ' ]);
262
268
$ pageGridData = $ this ->getPageGridDataByStoreCode ($ requestStore );
263
269
$ this ->assertTrue (
@@ -370,7 +376,10 @@ public function testUpdateByStores(string $requestStore): void
370
376
$ requestData = $ this ->getPageRequestData ();
371
377
372
378
$ page = $ this ->_webApiCall ($ serviceInfo , $ requestData , null , $ requestStore );
373
- $ this ->currentPage = $ this ->getPageByIdentifier ($ requestData ['page ' ][PageInterface::IDENTIFIER ], $ newStoreId );
379
+ $ this ->createdPages [] = $ this ->loadPageByIdentifier (
380
+ $ requestData ['page ' ][PageInterface::IDENTIFIER ],
381
+ $ newStoreId
382
+ );
374
383
$ this ->assertResponseData ($ page , $ requestData ['page ' ]);
375
384
$ pageGridData = $ this ->getPageGridDataByStoreCode ($ requestStore );
376
385
$ this ->assertTrue (
@@ -768,7 +777,7 @@ private function isPageInArray(array $pageGridData, int $pageId): bool
768
777
*/
769
778
private function updatePage (string $ pageIdentifier , int $ storeId , array $ pageData ): PageInterface
770
779
{
771
- $ page = $ this ->getPageByIdentifier -> execute ($ pageIdentifier , $ storeId );
780
+ $ page = $ this ->loadPageByIdentifier ($ pageIdentifier , $ storeId );
772
781
$ page ->addData ($ pageData );
773
782
774
783
return $ this ->pageRepository ->save ($ page );
@@ -839,19 +848,17 @@ private function getPageGridDataByStoreCode(string $requestStore): array
839
848
}
840
849
841
850
/**
842
- * Get page by identifier without throw exception
851
+ * Load page by identifier and store id
843
852
*
844
853
* @param string $identifier
845
854
* @param int $storeId
846
- * @return PageInterface|null
855
+ * @return PageInterface
847
856
*/
848
- private function getPageByIdentifier (string $ identifier , int $ storeId ): ? PageInterface
857
+ private function loadPageByIdentifier (string $ identifier , int $ storeId ): PageInterface
849
858
{
850
- $ page = null ;
851
- try {
852
- $ page = $ this ->getPageByIdentifier ->execute ($ identifier , $ storeId );
853
- } catch (NoSuchEntityException $ exception ) {
854
- }
859
+ $ page = $ this ->pageFactory ->create ();
860
+ $ page ->setStoreId ($ storeId );
861
+ $ this ->pageResource ->load ($ page , $ identifier , PageInterface::IDENTIFIER );
855
862
856
863
return $ page ;
857
864
}
0 commit comments