Skip to content

Commit ca03e99

Browse files
committed
[Tests] Aligned PermissionTest with Base changes
1 parent 4bb9894 commit ca03e99

File tree

1 file changed

+27
-44
lines changed

1 file changed

+27
-44
lines changed

tests/lib/Repository/Service/Mock/PermissionTest.php

Lines changed: 27 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@
1111
use Ibexa\Contracts\Core\Persistence\User\Policy;
1212
use Ibexa\Contracts\Core\Persistence\User\Role;
1313
use Ibexa\Contracts\Core\Persistence\User\RoleAssignment;
14+
use Ibexa\Contracts\Core\Repository\PermissionResolver as APIPermissionResolver;
1415
use Ibexa\Contracts\Core\Repository\Repository;
1516
use Ibexa\Contracts\Core\Repository\Values\User\Limitation;
1617
use Ibexa\Contracts\Core\Repository\Values\ValueObject;
1718
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
1819
use Ibexa\Core\Base\Exceptions\InvalidArgumentValue;
1920
use Ibexa\Core\Base\Exceptions\NotFound\LimitationNotFoundException;
2021
use Ibexa\Core\Repository\Permission\PermissionResolver;
21-
use Ibexa\Core\Repository\Repository as CoreRepository;
2222
use Ibexa\Core\Repository\Values\User\UserReference;
2323
use Ibexa\Tests\Core\Repository\Service\Mock\Base as BaseServiceMockTest;
24+
use PHPUnit\Framework\MockObject\MockObject;
2425

2526
/**
2627
* Mock test case for PermissionResolver.
@@ -107,20 +108,20 @@ public function testHasAccessReturnsTrue(array $roles, array $roleAssignments)
107108
{
108109
/** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */
109110
$userHandlerMock = $this->getPersistenceMock()->userHandler();
110-
$mockedService = $this->getPermissionResolverMock(null);
111+
$mockedService = $this->getPermissionResolverWithMockedMethods([]);
111112

112113
$userHandlerMock
113114
->expects(self::once())
114115
->method('loadRoleAssignmentsByGroupId')
115116
->with(self::equalTo(10), self::equalTo(true))
116-
->will(self::returnValue($roleAssignments));
117+
->willReturn($roleAssignments);
117118

118119
foreach ($roleAssignments as $at => $roleAssignment) {
119120
$userHandlerMock
120121
->expects(self::at($at + 1))
121122
->method('loadRole')
122123
->with($roleAssignment->roleId)
123-
->will(self::returnValue($roles[$roleAssignment->roleId]));
124+
->willReturn($roles[$roleAssignment->roleId]);
124125
}
125126

126127
$result = $mockedService->hasAccess('dummy-module', 'dummy-function');
@@ -178,7 +179,7 @@ public function testHasAccessReturnsFalse(array $roles, array $roleAssignments)
178179
{
179180
/** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */
180181
$userHandlerMock = $this->getPersistenceMock()->userHandler();
181-
$service = $this->getPermissionResolverMock(null);
182+
$service = $this->getPermissionResolverWithMockedMethods([]);
182183

183184
$userHandlerMock
184185
->expects(self::once())
@@ -206,7 +207,7 @@ public function testHasAccessReturnsFalseButSudoSoTrue()
206207
{
207208
/** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */
208209
$userHandlerMock = $this->getPersistenceMock()->userHandler();
209-
$service = $this->getPermissionResolverMock(null);
210+
$service = $this->getPermissionResolverWithMockedMethods([]);
210211
$repositoryMock = $this->getRepositoryMock();
211212
$repositoryMock
212213
->expects(self::any())
@@ -291,7 +292,7 @@ public function testHasAccessReturnsPermissionSets(array $roles, array $roleAssi
291292
/** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */
292293
$userHandlerMock = $this->getPersistenceMock()->userHandler();
293294
$roleDomainMapper = $this->getRoleDomainMapperMock(['buildDomainPolicyObject']);
294-
$permissionResolverMock = $this->getPermissionResolverMock(['getCurrentUserReference']);
295+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(['getCurrentUserReference']);
295296

296297
$permissionResolverMock
297298
->expects(self::once())
@@ -407,7 +408,7 @@ public function testHasAccessReturnsLimitationNotFoundException(array $roles, ar
407408
/** @var $userHandlerMock \PHPUnit\Framework\MockObject\MockObject */
408409
$userHandlerMock = $this->getPersistenceMock()->userHandler();
409410
$roleDomainMapper = $this->getRoleDomainMapperMock();
410-
$permissionResolverMock = $this->getPermissionResolverMock(['getCurrentUserReference']);
411+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(['getCurrentUserReference']);
411412

412413
$permissionResolverMock
413414
->expects(self::once())
@@ -519,7 +520,7 @@ public function testHasAccessReturnsInvalidArgumentValueException(array $roles,
519520
{
520521
$this->expectException(InvalidArgumentValue::class);
521522

522-
$permissionResolverMock = $this->getPermissionResolverMock(['getCurrentUserReference']);
523+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(['getCurrentUserReference']);
523524

524525
/** @var $role \Ibexa\Contracts\Core\Persistence\User\Role */
525526
foreach ($roles as $role) {
@@ -587,7 +588,7 @@ public function testHasAccessReturnsPermissionSetsWithRoleLimitation(array $role
587588
$limitationTypeMock = $this->createMock(Type::class);
588589
$limitationService = $this->getLimitationServiceMock();
589590
$roleDomainMapper = $this->getRoleDomainMapperMock();
590-
$permissionResolverMock = $this->getPermissionResolverMock(['getCurrentUserReference']);
591+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(['getCurrentUserReference']);
591592

592593
$permissionResolverMock
593594
->expects(self::once())
@@ -690,13 +691,13 @@ public function providerForTestCanUserSimple()
690691
*/
691692
public function testCanUserSimple($permissionSets, $result)
692693
{
693-
$permissionResolverMock = $this->getPermissionResolverMock(['hasAccess']);
694+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(['hasAccess']);
694695

695696
$permissionResolverMock
696697
->expects(self::once())
697698
->method('hasAccess')
698699
->with(self::equalTo('test-module'), self::equalTo('test-function'))
699-
->will(self::returnValue($permissionSets));
700+
->willReturn($permissionSets);
700701

701702
/** @var $valueObject \Ibexa\Contracts\Core\Repository\Values\ValueObject */
702703
$valueObject = $this->getMockForAbstractClass(ValueObject::class);
@@ -714,7 +715,7 @@ public function testCanUserSimple($permissionSets, $result)
714715
*/
715716
public function testCanUserWithoutLimitations()
716717
{
717-
$permissionResolverMock = $this->getPermissionResolverMock(
718+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(
718719
[
719720
'hasAccess',
720721
'getCurrentUserReference',
@@ -891,7 +892,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli
891892
/** @var $valueObject \Ibexa\Contracts\Core\Repository\Values\ValueObject */
892893
$valueObject = $this->createMock(ValueObject::class);
893894
$limitationServiceMock = $this->getLimitationServiceMock();
894-
$permissionResolverMock = $this->getPermissionResolverMock(
895+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods(
895896
[
896897
'hasAccess',
897898
'getCurrentUserReference',
@@ -903,7 +904,7 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli
903904
->expects(self::once())
904905
->method('hasAccess')
905906
->with(self::equalTo('test-module'), self::equalTo('test-function'))
906-
->will(self::returnValue($permissionSets));
907+
->willReturn($permissionSets);
907908

908909
$userRef = new UserReference(14);
909910
$permissionResolverMock
@@ -974,9 +975,9 @@ public function testCanUserComplex(array $roleLimitationEvaluations, array $poli
974975
/**
975976
* Test for the setCurrentUserReference() and getCurrentUserReference() methods.
976977
*/
977-
public function testSetAndGetCurrentUserReference()
978+
public function testSetAndGetCurrentUserReference(): void
978979
{
979-
$permissionResolverMock = $this->getPermissionResolverMock(null);
980+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods([]);
980981
$userReferenceMock = $this->getUserReferenceMock();
981982

982983
$userReferenceMock
@@ -997,19 +998,19 @@ public function testSetAndGetCurrentUserReference()
997998
*/
998999
public function testGetCurrentUserReferenceReturnsAnonymousUser()
9991000
{
1000-
$permissionResolverMock = $this->getPermissionResolverMock(null);
1001+
$permissionResolverMock = $this->getPermissionResolverWithMockedMethods([]);
10011002

10021003
self::assertEquals(new UserReference(10), $permissionResolverMock->getCurrentUserReference());
10031004
}
10041005

1005-
protected $permissionResolverMock;
1006+
protected MockObject & APIPermissionResolver $permissionResolverMock;
10061007

10071008
/**
1008-
* @return \Ibexa\Contracts\Core\Repository\PermissionResolver|\PHPUnit\Framework\MockObject\MockObject
1009+
* @param string[] $methods
10091010
*/
1010-
protected function getPermissionResolverMock($methods = [])
1011+
protected function getPermissionResolverWithMockedMethods(array $methods): MockObject & APIPermissionResolver
10111012
{
1012-
if ($this->permissionResolverMock === null) {
1013+
if (!isset($this->permissionResolverMock)) {
10131014
$configResolverMock = $this->createMock(ConfigResolverInterface::class);
10141015
$configResolverMock
10151016
->method('getParameter')
@@ -1018,7 +1019,7 @@ protected function getPermissionResolverMock($methods = [])
10181019

10191020
$this->permissionResolverMock = $this
10201021
->getMockBuilder(PermissionResolver::class)
1021-
->setMethods($methods)
1022+
->onlyMethods($methods)
10221023
->setConstructorArgs(
10231024
[
10241025
$this->getRoleDomainMapperMock(),
@@ -1051,32 +1052,14 @@ protected function getPermissionResolverMock($methods = [])
10511052
return $this->permissionResolverMock;
10521053
}
10531054

1054-
protected $userReferenceMock;
1055+
protected MockObject & UserReference $userReferenceMock;
10551056

1056-
protected function getUserReferenceMock()
1057+
protected function getUserReferenceMock(): MockObject & UserReference
10571058
{
1058-
if ($this->userReferenceMock === null) {
1059+
if (!isset($this->userReferenceMock)) {
10591060
$this->userReferenceMock = $this->createMock(UserReference::class);
10601061
}
10611062

10621063
return $this->userReferenceMock;
10631064
}
1064-
1065-
protected $repositoryMock;
1066-
1067-
/**
1068-
* @return \Ibexa\Contracts\Core\Repository\Repository|\PHPUnit\Framework\MockObject\MockObject
1069-
*/
1070-
protected function getRepositoryMock(): Repository
1071-
{
1072-
if ($this->repositoryMock === null) {
1073-
$this->repositoryMock = $this
1074-
->getMockBuilder(CoreRepository::class)
1075-
->onlyMethods(['getPermissionResolver'])
1076-
->disableOriginalConstructor()
1077-
->getMock();
1078-
}
1079-
1080-
return $this->repositoryMock;
1081-
}
10821065
}

0 commit comments

Comments
 (0)