1111use Ibexa \Contracts \Core \Persistence \User \Policy ;
1212use Ibexa \Contracts \Core \Persistence \User \Role ;
1313use Ibexa \Contracts \Core \Persistence \User \RoleAssignment ;
14+ use Ibexa \Contracts \Core \Repository \PermissionResolver as APIPermissionResolver ;
1415use Ibexa \Contracts \Core \Repository \Repository ;
1516use Ibexa \Contracts \Core \Repository \Values \User \Limitation ;
1617use Ibexa \Contracts \Core \Repository \Values \ValueObject ;
1718use Ibexa \Contracts \Core \SiteAccess \ConfigResolverInterface ;
1819use Ibexa \Core \Base \Exceptions \InvalidArgumentValue ;
1920use Ibexa \Core \Base \Exceptions \NotFound \LimitationNotFoundException ;
2021use Ibexa \Core \Repository \Permission \PermissionResolver ;
21- use Ibexa \Core \Repository \Repository as CoreRepository ;
2222use Ibexa \Core \Repository \Values \User \UserReference ;
2323use 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