| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Test\Service\Access;
- use App\ApiResources\Profile\AccessProfile;
- use App\ApiResources\Profile\OrganizationProfile;
- use App\Entity\Access\Access;
- use App\Entity\Organization\Organization;
- use App\Entity\Person\Person;
- use App\Repository\Access\AccessRepository;
- use App\Service\Access\AccessProfileCreator;
- use App\Service\Access\Utils;
- use App\Service\Organization\OrganizationProfileCreator;
- use PHPUnit\Framework\TestCase;
- use Symfony\Component\Security\Core\Exception\AuthenticationException;
- use Symfony\Component\Security\Core\Role\RoleHierarchy;
- class AccessProfileCreatorTest extends TestCase
- {
- private Access $access;
- private $accessProfileCreator;
- private $accessRepositoryMock;
- private $accessUtilsMock;
- public function setUp():void
- {
- $person = new Person();
- $person
- ->setName('Foo')
- ->setGivenName('Bar')
- ;
- $this->access = new Access();
- $this->access
- ->setAdminAccess(true)
- ->setPerson($person)
- ->setOrganization(new Organization())
- ;
- $roleHierarchyMock = $this->getMockBuilder(RoleHierarchy::class)->disableOriginalConstructor()->getMock();
- $roleHierarchyMock
- ->method('getReachableRoleNames')
- ->willReturn(["ROLE_A", "ROLE_B"]);
- $organizationProfileCreatorMock = $this->getMockBuilder(OrganizationProfileCreator::class)->disableOriginalConstructor()->getMock();
- $organizationProfileCreatorMock
- ->method('getOrganizationProfile')
- ->with($this->access->getOrganization())
- ->willReturn(new OrganizationProfile());
- $this->accessRepositoryMock = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
- $this->accessUtilsMock = $this->getMockBuilder(Utils::class)->disableOriginalConstructor()->getMock();
- $this->accessProfileCreator = new AccessProfileCreator(
- $roleHierarchyMock,
- $organizationProfileCreatorMock,
- $this->accessRepositoryMock,
- $this->accessUtilsMock
- );
- }
- /**
- * @see AccessProfileCreator::getAccessProfile()
- */
- public function testGetAccessProfileFailed(){
- $this->accessRepositoryMock
- ->method('findAllValidAccesses')
- ->with($this->access)
- ->willReturn([]);
- $this->expectException(AuthenticationException::class);
- $this->accessProfileCreator->getAccessProfile($this->access);
- }
- /**
- * @see AccessProfileCreator::createAccessProfile()
- */
- public function testCreateAccessProfile(){
- $accessProfile = $this->accessProfileCreator->createAccessProfile($this->access);
- $this->assertInstanceOf(AccessProfile::class, $accessProfile);
- }
- /**
- * @see AccessProfileCreator::createLightAccessProfile()
- */
- public function testCreateLightAccessProfile(){
- $accessProfile = $this->accessProfileCreator->createLightAccessProfile($this->access);
- $this->assertInstanceOf(AccessProfile::class, $accessProfile);
- }
- }
|