| @@ 238-269 (lines=32) @@ | ||
| 235 | * @see \eZ\Publish\API\Repository\LocationService::updateLocation() |
|
| 236 | * @depends eZ\Publish\API\Repository\Tests\LocationServiceTest::testUpdateLocation |
|
| 237 | */ |
|
| 238 | public function testUpdateLocationThrowsUnauthorizedException() |
|
| 239 | { |
|
| 240 | $this->expectException(\eZ\Publish\API\Repository\Exceptions\UnauthorizedException::class); |
|
| 241 | ||
| 242 | $repository = $this->getRepository(); |
|
| 243 | $permissionResolver = $repository->getPermissionResolver(); |
|
| 244 | ||
| 245 | $editorsGroupId = $this->generateId('group', 13); |
|
| 246 | ||
| 247 | /* BEGIN: Use Case */ |
|
| 248 | $user = $this->createUserVersion1(); |
|
| 249 | ||
| 250 | $locationService = $repository->getLocationService(); |
|
| 251 | ||
| 252 | $originalLocation = $locationService->loadLocation($editorsGroupId); |
|
| 253 | ||
| 254 | $locationUpdateStruct = $locationService->newLocationUpdateStruct(); |
|
| 255 | $locationUpdateStruct->priority = 3; |
|
| 256 | $locationUpdateStruct->remoteId = 'c7adcbf1e96bc29bca28c2d809d0c7ef69272651'; |
|
| 257 | $locationUpdateStruct->sortField = Location::SORT_FIELD_PRIORITY; |
|
| 258 | $locationUpdateStruct->sortOrder = Location::SORT_ORDER_DESC; |
|
| 259 | ||
| 260 | // Set current user to newly created user |
|
| 261 | $permissionResolver->setCurrentUserReference($user); |
|
| 262 | ||
| 263 | // This call will fail with an "UnauthorizedException" |
|
| 264 | $locationService->updateLocation( |
|
| 265 | $originalLocation, |
|
| 266 | $locationUpdateStruct |
|
| 267 | ); |
|
| 268 | /* END: Use Case */ |
|
| 269 | } |
|
| 270 | ||
| 271 | /** |
|
| 272 | * Test for the swapLocation() method. |
|
| @@ 310-340 (lines=31) @@ | ||
| 307 | * @depends eZ\Publish\API\Repository\Tests\LocationServiceTest::testNewLocationCreateStruct |
|
| 308 | * @dataProvider dataProviderForOutOfRangeLocationPriority |
|
| 309 | */ |
|
| 310 | public function testCreateLocationThrowsInvalidArgumentExceptionPriorityIsOutOfRange($priority) |
|
| 311 | { |
|
| 312 | $this->expectException(\eZ\Publish\API\Repository\Exceptions\InvalidArgumentException::class); |
|
| 313 | ||
| 314 | $repository = $this->getRepository(); |
|
| 315 | ||
| 316 | $contentId = $this->generateId('object', 41); |
|
| 317 | $parentLocationId = $this->generateId('location', 5); |
|
| 318 | /* BEGIN: Use Case */ |
|
| 319 | // $contentId is the ID of an existing content object |
|
| 320 | // $parentLocationId is the ID of an existing location |
|
| 321 | $contentService = $repository->getContentService(); |
|
| 322 | $locationService = $repository->getLocationService(); |
|
| 323 | ||
| 324 | // ContentInfo for "How to use eZ Publish" |
|
| 325 | $contentInfo = $contentService->loadContentInfo($contentId); |
|
| 326 | ||
| 327 | $locationCreate = $locationService->newLocationCreateStruct($parentLocationId); |
|
| 328 | $locationCreate->priority = $priority; |
|
| 329 | $locationCreate->hidden = true; |
|
| 330 | $locationCreate->remoteId = 'sindelfingen'; |
|
| 331 | $locationCreate->sortField = Location::SORT_FIELD_NODE_ID; |
|
| 332 | $locationCreate->sortOrder = Location::SORT_ORDER_DESC; |
|
| 333 | ||
| 334 | // Throws exception, since priority is out of range |
|
| 335 | $locationService->createLocation( |
|
| 336 | $contentInfo, |
|
| 337 | $locationCreate |
|
| 338 | ); |
|
| 339 | /* END: Use Case */ |
|
| 340 | } |
|
| 341 | ||
| 342 | public function dataProviderForOutOfRangeLocationPriority() |
|
| 343 | { |
|