diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2024-10-17 15:43:57 +0200 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-10-30 19:25:32 +0100 |
commit | 40c2764434e6ef99ffe7a6e1ac392e9d2bcb3d43 (patch) | |
tree | 11a9a8e51ab050837ad3508837ebb6c0816a00cf /apps/provisioning_api/tests | |
parent | 0bb72022d021e15d064ec7728591918d5ba2c3d3 (diff) | |
download | nextcloud-server-40c2764434e6ef99ffe7a6e1ac392e9d2bcb3d43.tar.gz nextcloud-server-40c2764434e6ef99ffe7a6e1ac392e9d2bcb3d43.zip |
chore(provisioning_api): Add tests for getDisabledUserDetails
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'apps/provisioning_api/tests')
-rw-r--r-- | apps/provisioning_api/tests/Controller/UsersControllerTest.php | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php index 66e54efb650..56de45ba2d6 100644 --- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php +++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php @@ -244,6 +244,131 @@ class UsersControllerTest extends TestCase { $this->assertEquals($expected, $this->api->getUsers('MyCustomSearch')->getData()); } + private function createUserMock(string $uid, bool $enabled): MockObject&IUser { + $mockUser = $this->getMockBuilder(IUser::class) + ->disableOriginalConstructor() + ->getMock(); + $mockUser + ->method('getUID') + ->willReturn($uid); + $mockUser + ->method('isEnabled') + ->willReturn($enabled); + return $mockUser; + } + + public function testGetDisabledUsersAsAdmin(): void { + $loggedInUser = $this->getMockBuilder(IUser::class) + ->disableOriginalConstructor() + ->getMock(); + $loggedInUser + ->expects($this->once()) + ->method('getUID') + ->willReturn('admin'); + $this->userSession + ->expects($this->atLeastOnce()) + ->method('getUser') + ->willReturn($loggedInUser); + $this->groupManager + ->expects($this->once()) + ->method('isAdmin') + ->willReturn(true); + $this->userManager + ->expects($this->once()) + ->method('getDisabledUsers') + ->with(3, 0, 'MyCustomSearch') + ->willReturn([ + $this->createUserMock('admin', false), + $this->createUserMock('foo', false), + $this->createUserMock('bar', false), + ]); + + $expected = [ + 'users' => [ + 'admin' => ['id' => 'admin'], + 'foo' => ['id' => 'foo'], + 'bar' => ['id' => 'bar'], + ], + ]; + $this->assertEquals($expected, $this->api->getDisabledUsersDetails('MyCustomSearch', 3)->getData()); + } + + public function testGetDisabledUsersAsSubAdmin(): void { + $loggedInUser = $this->getMockBuilder(IUser::class) + ->disableOriginalConstructor() + ->getMock(); + $loggedInUser + ->expects($this->once()) + ->method('getUID') + ->willReturn('subadmin'); + $this->userSession + ->expects($this->atLeastOnce()) + ->method('getUser') + ->willReturn($loggedInUser); + $this->groupManager + ->expects($this->once()) + ->method('isAdmin') + ->willReturn(false); + $firstGroup = $this->getMockBuilder('OCP\IGroup') + ->disableOriginalConstructor() + ->getMock(); + $secondGroup = $this->getMockBuilder('OCP\IGroup') + ->disableOriginalConstructor() + ->getMock(); + $subAdminManager = $this->getMockBuilder('OC\SubAdmin') + ->disableOriginalConstructor()->getMock(); + $subAdminManager + ->expects($this->once()) + ->method('isSubAdmin') + ->with($loggedInUser) + ->willReturn(true); + $subAdminManager + ->expects($this->once()) + ->method('getSubAdminsGroups') + ->with($loggedInUser) + ->willReturn([$firstGroup, $secondGroup]); + $this->groupManager + ->expects($this->once()) + ->method('getSubAdmin') + ->willReturn($subAdminManager); + $this->groupManager + ->expects($this->never()) + ->method('displayNamesInGroup'); + + $firstGroup + ->expects($this->once()) + ->method('searchUsers') + ->with('MyCustomSearch') + ->willReturn([ + $this->createUserMock('user1', false), + $this->createUserMock('bob', true), + $this->createUserMock('user2', false), + $this->createUserMock('alice', true), + ]); + + $secondGroup + ->expects($this->once()) + ->method('searchUsers') + ->with('MyCustomSearch') + ->willReturn([ + $this->createUserMock('user2', false), + $this->createUserMock('joe', true), + $this->createUserMock('user3', false), + $this->createUserMock('jim', true), + $this->createUserMock('john', true), + ]); + + + $expected = [ + 'users' => [ + 'user1' => ['id' => 'user1'], + 'user2' => ['id' => 'user2'], + 'user3' => ['id' => 'user3'], + ], + ]; + $this->assertEquals($expected, $this->api->getDisabledUsersDetails('MyCustomSearch', 3)->getData()); + } + public function testAddUserAlreadyExisting() { $this->expectException(\OCP\AppFramework\OCS\OCSException::class); |