getMockBuilder(RoleHierarchy::class)->disableOriginalConstructor()->getMock(); $roleHierarchyMock ->method('getReachableRoleNames') ->willReturn(["ROLE_A", "ROLE_B"]); $handleOptionalsRolesMock = $this->getMockBuilder(HandleOptionalsRoles::class)->disableOriginalConstructor()->getMock(); $handleOptionalsRolesMock ->method('getOptionalsRoles') ->willReturn(["ROLE_OPT"]); $this->utils = new Utils($roleHierarchyMock, $handleOptionalsRolesMock); } /** * @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)); } }