| @@ 193-215 (lines=23) @@ | ||
| 190 | /** |
|
| 191 | * @test |
|
| 192 | */ |
|
| 193 | public function shouldCheckIfAccessIsGranted() |
|
| 194 | { |
|
| 195 | /** @var Request $request */ |
|
| 196 | $request = $this->createMock(Request::class); |
|
| 197 | ||
| 198 | $this->expectException(AccessDeniedException::class); |
|
| 199 | ||
| 200 | $this->controllerHelper->expects($this->once())->method('denyAccessUnlessGranted')->with( |
|
| 201 | $this->equalTo('some-attribute'), |
|
| 202 | $this->identicalTo($request) |
|
| 203 | )->will($this->returnCallback( |
|
| 204 | function () { |
|
| 205 | throw new AccessDeniedException('Lorem ipsum!'); |
|
| 206 | } |
|
| 207 | )); |
|
| 208 | ||
| 209 | $controller = new GenericEntityListingController($this->controllerHelper, $this->argumentCompiler, [ |
|
| 210 | 'entity-class' => SampleEntity::class, |
|
| 211 | 'authorization-attribute' => 'some-attribute', |
|
| 212 | ]); |
|
| 213 | ||
| 214 | $controller->listEntities($request); |
|
| 215 | } |
|
| 216 | ||
| 217 | /** |
|
| 218 | * @test |
|
| @@ 376-399 (lines=24) @@ | ||
| 373 | /** |
|
| 374 | * @test |
|
| 375 | */ |
|
| 376 | public function shouldRejectNonExistingFactory() |
|
| 377 | { |
|
| 378 | $controller = new GenericEntityCreateController( |
|
| 379 | $this->controllerHelper, |
|
| 380 | $this->argumentBuilder, |
|
| 381 | $this->container, |
|
| 382 | [ |
|
| 383 | 'entity-class' => SampleEntity::class, |
|
| 384 | 'factory' => '@some_factory_service::serialize' |
|
| 385 | ] |
|
| 386 | ); |
|
| 387 | ||
| 388 | $this->container->expects($this->once())->method('get')->with( |
|
| 389 | $this->equalTo('some_factory_service') |
|
| 390 | )->willReturn(null); |
|
| 391 | ||
| 392 | /** @var Request $request */ |
|
| 393 | $request = $this->createMock(Request::class); |
|
| 394 | ||
| 395 | $this->expectException(InvalidArgumentException::class); |
|
| 396 | $this->expectExceptionMessage("Did not find service 'some_factory_service'!"); |
|
| 397 | ||
| 398 | $controller->createEntity($request); |
|
| 399 | } |
|
| 400 | ||
| 401 | /** |
|
| 402 | * @test |
|
| @@ 427-452 (lines=26) @@ | ||
| 424 | /** |
|
| 425 | * @test |
|
| 426 | */ |
|
| 427 | public function shouldRejectNonExistingFactoryMethod() |
|
| 428 | { |
|
| 429 | $controller = new GenericEntityCreateController( |
|
| 430 | $this->controllerHelper, |
|
| 431 | $this->argumentBuilder, |
|
| 432 | $this->container, |
|
| 433 | [ |
|
| 434 | 'entity-class' => SampleEntity::class, |
|
| 435 | 'factory' => '@some_factory_service::MethodDoesNotExist' |
|
| 436 | ] |
|
| 437 | ); |
|
| 438 | ||
| 439 | /** @var Serializable $factoryMock */ |
|
| 440 | $factoryMock = $this->createMock(Serializable::class); |
|
| 441 | ||
| 442 | $this->container->expects($this->once())->method('get')->with( |
|
| 443 | $this->equalTo('some_factory_service') |
|
| 444 | )->willReturn($factoryMock); |
|
| 445 | ||
| 446 | /** @var Request $request */ |
|
| 447 | $request = $this->createMock(Request::class); |
|
| 448 | ||
| 449 | $this->expectException(ReflectionException::class); |
|
| 450 | ||
| 451 | $controller->createEntity($request); |
|
| 452 | } |
|
| 453 | ||
| 454 | /** |
|
| 455 | * @test |
|