use Symfony\Component\Security\Core\Role\RoleHierarchy;
class RoleHierarchyTest extends TestCase
{ public function testGetReachableRoleNames() { $role =
new RoleHierarchy([ 'ROLE_ADMIN' =>
['ROLE_USER'
],
'ROLE_SUPER_ADMIN' =>
['ROLE_ADMIN', 'ROLE_FOO'
],
]);
$this->
assertEquals(['ROLE_USER'
],
$role->
getReachableRoleNames(['ROLE_USER'
]));
$this->
assertEquals(['ROLE_FOO'
],
$role->
getReachableRoleNames(['ROLE_FOO'
]));
$this->
assertEquals(['ROLE_ADMIN', 'ROLE_USER'
],
$role->
getReachableRoleNames(['ROLE_ADMIN'
]));
$this->
assertEquals(['ROLE_FOO', 'ROLE_ADMIN', 'ROLE_USER'
],
$role->
getReachableRoleNames(['ROLE_FOO', 'ROLE_ADMIN'
]));
$this->
assertEquals(['ROLE_SUPER_ADMIN', 'ROLE_ADMIN', 'ROLE_FOO', 'ROLE_USER'
],
$role->
getReachableRoleNames(['ROLE_SUPER_ADMIN'
]));
$this->
assertEquals(['ROLE_SUPER_ADMIN', 'ROLE_ADMIN', 'ROLE_FOO', 'ROLE_USER'
],
$role->
getReachableRoleNames(['ROLE_SUPER_ADMIN', 'ROLE_SUPER_ADMIN'
]));
}}