|
@@ -3,6 +3,9 @@
|
|
|
namespace App\Test\Service\Access;
|
|
namespace App\Test\Service\Access;
|
|
|
|
|
|
|
|
use App\Entity\Access\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\Access\Utils;
|
|
|
use App\Service\ServiceIterator\OptionalsRolesIterator;
|
|
use App\Service\ServiceIterator\OptionalsRolesIterator;
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use PHPUnit\Framework\TestCase;
|
|
@@ -11,6 +14,7 @@ use Symfony\Component\Security\Core\Role\RoleHierarchy;
|
|
|
class UtilsTest extends TestCase
|
|
class UtilsTest extends TestCase
|
|
|
{
|
|
{
|
|
|
private Utils $utils;
|
|
private Utils $utils;
|
|
|
|
|
+ private AccessRepository $accessRepositoryMock;
|
|
|
|
|
|
|
|
public function setUp():void
|
|
public function setUp():void
|
|
|
{
|
|
{
|
|
@@ -19,11 +23,14 @@ class UtilsTest extends TestCase
|
|
|
->method('getReachableRoleNames')
|
|
->method('getReachableRoleNames')
|
|
|
->willReturn(["ROLE_A", "ROLE_B"]);
|
|
->willReturn(["ROLE_A", "ROLE_B"]);
|
|
|
|
|
|
|
|
|
|
+
|
|
|
$optionalsRolesIteratorMock = $this->getMockBuilder(OptionalsRolesIterator::class)->disableOriginalConstructor()->getMock();
|
|
$optionalsRolesIteratorMock = $this->getMockBuilder(OptionalsRolesIterator::class)->disableOriginalConstructor()->getMock();
|
|
|
$optionalsRolesIteratorMock
|
|
$optionalsRolesIteratorMock
|
|
|
->method('getOptionalsRoles')
|
|
->method('getOptionalsRoles')
|
|
|
->willReturn(["ROLE_OPT"]);
|
|
->willReturn(["ROLE_OPT"]);
|
|
|
|
|
|
|
|
|
|
+ $this->accessRepositoryMock = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
|
|
|
|
|
+
|
|
|
$this->utils = new Utils($roleHierarchyMock, $optionalsRolesIteratorMock);
|
|
$this->utils = new Utils($roleHierarchyMock, $optionalsRolesIteratorMock);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -86,4 +93,26 @@ class UtilsTest extends TestCase
|
|
|
|
|
|
|
|
$this->assertEquals(['ROLE_A', 'ROLE_B'], $this->utils->getAllRoles($accessMock1));
|
|
$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()));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|