| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace App\Test\Service\Access;
- use App\Entity\Access\Access;
- use App\Entity\Organization\Organization;
- use App\Repository\Access\AccessRepository;
- use App\Service\Access\HandleOptionalsRoles;
- use App\Service\Access\Utils;
- use App\Service\ServiceIterator\OptionalsRolesIterator;
- use PHPUnit\Framework\TestCase;
- use Symfony\Component\Security\Core\Role\RoleHierarchy;
- class UtilsTest extends TestCase
- {
- private Utils $utils;
- private AccessRepository $accessRepositoryMock;
- public function setUp():void
- {
- $roleHierarchyMock = $this->getMockBuilder(RoleHierarchy::class)->disableOriginalConstructor()->getMock();
- $roleHierarchyMock
- ->method('getReachableRoleNames')
- ->willReturn(["ROLE_A", "ROLE_B"]);
- $optionalsRolesIteratorMock = $this->getMockBuilder(OptionalsRolesIterator::class)->disableOriginalConstructor()->getMock();
- $optionalsRolesIteratorMock
- ->method('getOptionalsRoles')
- ->willReturn(["ROLE_OPT"]);
- $this->accessRepositoryMock = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
- $this->utils = new Utils($roleHierarchyMock, $this->accessRepositoryMock, $optionalsRolesIteratorMock);
- }
- /**
- * @see Utils::filterAccesses()
- */
- public function testFilterAccesses(){
- $accessMock1 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock1
- ->method('getId')
- ->willReturn(1);
- $accessesMock[] = $accessMock1;
- $accessMock2 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock2
- ->method('getId')
- ->willReturn(2);
- $accessesMock[] = $accessMock2;
- $accessMock3 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock3
- ->method('getId')
- ->willReturn(3);
- $accessesMock[] = $accessMock3;
- $this->assertCount(2, $this->utils->filterAccesses($accessesMock, $accessMock2));
- }
- /**
- * @see Utils::hasRoles()
- */
- public function testHasRoles(){
- $accessMock1 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock1
- ->method('getRoles')
- ->willReturn(['ROLE_A']);
- $this->assertTrue($this->utils->hasRoles($accessMock1, 'ROLE_A'));
- }
- /**
- * @see Utils::hasRoles()
- */
- public function testHasNotRoles(){
- $accessMock1 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock1
- ->method('getRoles')
- ->willReturn(['ROLE_A']);
- $this->assertFalse($this->utils->hasRoles($accessMock1, 'ROLE_X'));
- }
- /**
- * @see Utils::getAllRoles()
- */
- public function testGetAllRoles(){
- $accessMock1 = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
- $accessMock1
- ->method('getRoles')
- ->willReturn(['ROLE_A']);
- $this->assertEquals(['ROLE_A', 'ROLE_B'], $this->utils->getAllRoles($accessMock1));
- }
- /**
- * @see Utils::getAdminAccess()
- */
- public function testGetAdminAccess(){
- $this->accessRepositoryMock
- ->method('findOneBy')
- ->willReturn(new Access());
- $this->assertNotEmpty($this->utils->getAdminAccess(new Organization()));
- }
- /**
- * @see Utils::getAdminAccess()
- */
- public function testGetAdminAccessNotFound(){
- $this->accessRepositoryMock
- ->method('findOneBy')
- ->willReturn(null);
- $this->assertNull($this->utils->getAdminAccess(new Organization()));
- }
- }
|