Code Duplication    Length = 23-26 lines in 6 locations

tests/unit/Controllers/API/GenericEntityListingControllerTest.php 1 location

@@ 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

tests/unit/Controllers/API/GenericEntityCreateControllerTest.php 5 locations

@@ 392-415 (lines=24) @@
389
    /**
390
     * @test
391
     */
392
    public function shouldRejectNonExistingFactory()
393
    {
394
        $controller = new GenericEntityCreateController(
395
            $this->controllerHelper,
396
            $this->argumentBuilder,
397
            $this->container,
398
            [
399
                'entity-class' => SampleEntity::class,
400
                'factory' => '@some_factory_service::serialize'
401
            ]
402
        );
403
404
        $this->container->expects($this->once())->method('get')->with(
405
            $this->equalTo('some_factory_service')
406
        )->willReturn(null);
407
408
        /** @var Request $request */
409
        $request = $this->createMock(Request::class);
410
411
        $this->expectException(InvalidArgumentException::class);
412
        $this->expectExceptionMessage("Did not find service 'some_factory_service'!");
413
414
        $controller->createEntity($request);
415
    }
416
417
    /**
418
     * @test
@@ 443-468 (lines=26) @@
440
    /**
441
     * @test
442
     */
443
    public function shouldRejectNonExistingFactoryMethod()
444
    {
445
        $controller = new GenericEntityCreateController(
446
            $this->controllerHelper,
447
            $this->argumentBuilder,
448
            $this->container,
449
            [
450
                'entity-class' => SampleEntity::class,
451
                'factory' => '@some_factory_service::MethodDoesNotExist'
452
            ]
453
        );
454
455
        /** @var Serializable $factoryMock */
456
        $factoryMock = $this->createMock(Serializable::class);
457
458
        $this->container->expects($this->once())->method('get')->with(
459
            $this->equalTo('some_factory_service')
460
        )->willReturn($factoryMock);
461
462
        /** @var Request $request */
463
        $request = $this->createMock(Request::class);
464
465
        $this->expectException(ReflectionException::class);
466
467
        $controller->createEntity($request);
468
    }
469
470
    /**
471
     * @test
@@ 622-645 (lines=24) @@
619
    /**
620
     * @test
621
     */
622
    public function shouldCreateAnEntityUsingAStaticFactory()
623
    {
624
        $controller = new GenericEntityCreateController(
625
            $this->controllerHelper,
626
            $this->argumentBuilder,
627
            $this->container,
628
            [
629
                'entity-class' => SampleEntity::class,
630
                'factory' => 'someStaticFactory'
631
            ]
632
        );
633
634
        $this->controllerHelper->expects($this->once())->method('persistEntity')->with(
635
            $this->equalTo(new SampleEntity("static foo"))
636
        );
637
638
        /** @var Request $request */
639
        $request = $this->createMock(Request::class);
640
641
        /** @var Response $response */
642
        $response = $controller->createEntity($request);
643
644
        $this->assertEquals(200, $response->getStatusCode());
645
    }
646
647
    /**
648
     * @test
@@ 650-673 (lines=24) @@
647
    /**
648
     * @test
649
     */
650
    public function shouldCreateAnEntityUsingStaticFactory()
651
    {
652
        $controller = new GenericEntityCreateController(
653
            $this->controllerHelper,
654
            $this->argumentBuilder,
655
            $this->container,
656
            [
657
                'entity-class' => SampleEntity::class,
658
                'factory' => 'someStaticFactory'
659
            ]
660
        );
661
662
        $this->controllerHelper->expects($this->once())->method('persistEntity')->with(
663
            $this->equalTo(new SampleEntity("static foo"))
664
        );
665
666
        /** @var Request $request */
667
        $request = $this->createMock(Request::class);
668
669
        /** @var Response $response */
670
        $response = $controller->createEntity($request);
671
672
        $this->assertEquals(200, $response->getStatusCode());
673
    }
674
675
    /**
676
     * @test
@@ 678-702 (lines=25) @@
675
    /**
676
     * @test
677
     */
678
    public function shouldCreateAnEntityUsingRegularFunction()
679
    {
680
        /** @var mixed $controller */
681
        $controller = new GenericEntityCreateController(
682
            $this->controllerHelper,
683
            $this->argumentBuilder,
684
            $this->container,
685
            [
686
                'entity-class' => SampleEntity::class,
687
                'factory' => __NAMESPACE__ . '\\createSampleEntity'
688
            ]
689
        );
690
691
        $this->controllerHelper->expects($this->once())->method('persistEntity')->with(
692
            $this->equalTo(new SampleEntity("function foo"))
693
        );
694
695
        /** @var Request $request */
696
        $request = $this->createMock(Request::class);
697
698
        /** @var Response $response */
699
        $response = $controller->createEntity($request);
700
701
        $this->assertEquals(200, $response->getStatusCode());
702
    }
703
704
}
705