Skip to content

Commit

Permalink
fix(user_ldap): Fix user_ldap tests by mocking new method exists in m…
Browse files Browse the repository at this point in the history
…anager

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
  • Loading branch information
come-nc committed Aug 27, 2024
1 parent eb27243 commit c3029c7
Showing 1 changed file with 64 additions and 20 deletions.
84 changes: 64 additions & 20 deletions apps/user_ldap/tests/User_LDAPTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,10 @@ public function testDeleteUserSuccess() {
$this->userManager->expects($this->atLeastOnce())
->method('get')
->willReturn($offlineUser);
$this->userManager->expects($this->once())
->method('exists')
->with($uid)
->willReturn(true);

$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);

Expand Down Expand Up @@ -490,9 +494,12 @@ public function testUserExists() {

$user = $this->createMock(User::class);

$this->userManager->expects($this->atLeastOnce())
->method('get')
->willReturn($user);
$this->userManager->expects($this->never())
->method('get');
$this->userManager->expects($this->once())
->method('exists')
->with('gunslinger')
->willReturn(true);
$this->access->expects($this->any())
->method('getUserMapper')
->willReturn($this->createMock(UserMapping::class));
Expand All @@ -517,11 +524,12 @@ public function testUserExistsForDeleted() {
->method('getUserMapper')
->willReturn($mapper);

$user = $this->createMock(User::class);

$this->userManager->expects($this->atLeastOnce())
->method('get')
->willReturn($user);
$this->userManager->expects($this->never())
->method('get');
$this->userManager->expects($this->once())
->method('exists')
->with('formerUser')
->willReturn(true);

//test for deleted user – always returns true as long as we have the user in DB
$this->assertTrue($backend->userExists('formerUser'));
Expand Down Expand Up @@ -564,9 +572,12 @@ public function testUserExistsPublicAPI() {
}
return false;
});
$this->userManager->expects($this->atLeastOnce())
->method('get')
->willReturn($user);
$this->userManager->expects($this->never())
->method('get');
$this->userManager->expects($this->once())
->method('exists')
->with('gunslinger')
->willReturn(true);
$this->access->expects($this->any())
->method('getUserMapper')
->willReturn($this->createMock(UserMapping::class));
Expand Down Expand Up @@ -625,7 +636,12 @@ public function testGetHomeAbsolutePath() {

$this->userManager->expects($this->atLeastOnce())
->method('get')
->with('gunslinger')
->willReturn($user);
$this->userManager->expects($this->once())
->method('exists')
->with('gunslinger')
->willReturn(true);

//absolute path
/** @noinspection PhpUnhandledExceptionInspection */
Expand Down Expand Up @@ -678,6 +694,10 @@ public function testGetHomeRelative() {
$this->userManager->expects($this->atLeastOnce())
->method('get')
->willReturn($user);
$this->userManager->expects($this->once())
->method('exists')
->with('ladyofshadows')
->willReturn(true);

/** @noinspection PhpUnhandledExceptionInspection */
$result = $backend->getHome('ladyofshadows');
Expand Down Expand Up @@ -707,14 +727,6 @@ public function testGetHomeNoPath() {
return false;
}
});
$this->access->connection->expects($this->any())
->method('getFromCache')
->willReturnCallback(function ($key) {
if ($key === 'userExistsnewyorker') {
return true;
}
return null;
});

$user = $this->createMock(User::class);
$user->expects($this->any())
Expand All @@ -726,7 +738,12 @@ public function testGetHomeNoPath() {

$this->userManager->expects($this->atLeastOnce())
->method('get')
->with('newyorker')
->willReturn($user);
$this->userManager->expects($this->once())
->method('exists')
->with('newyorker')
->willReturn(true);

//no path at all – triggers OC default behaviour
$result = $backend->getHome('newyorker');
Expand Down Expand Up @@ -765,7 +782,12 @@ public function testGetHomeDeletedUser() {

$this->userManager->expects($this->atLeastOnce())
->method('get')
->with($uid)
->willReturn($offlineUser);
$this->userManager->expects($this->once())
->method('exists')
->with($uid)
->willReturn(true);

$result = $backend->getHome($uid);
$this->assertFalse($result);
Expand Down Expand Up @@ -865,6 +887,16 @@ public function testGetDisplayName() {
}
return null;
});
$this->userManager->expects($this->any())
->method('exists')
->willReturnCallback(function ($uid) use ($user1, $user2) {
if ($uid === 'gunslinger') {
return true;
} elseif ($uid === 'newyorker') {
return true;
}
return false;
});
$this->access->expects($this->any())
->method('getUserMapper')
->willReturn($mapper);
Expand Down Expand Up @@ -948,6 +980,16 @@ public function testGetDisplayNamePublicAPI() {
}
return null;
});
$this->userManager->expects($this->any())
->method('exists')
->willReturnCallback(function ($uid) use ($user1, $user2) {
if ($uid === 'gunslinger') {
return true;
} elseif ($uid === 'newyorker') {
return true;
}
return false;
});
$this->access->expects($this->any())
->method('getUserMapper')
->willReturn($mapper);
Expand All @@ -958,7 +1000,7 @@ public function testGetDisplayNamePublicAPI() {
});

//with displayName
$result = \OC::$server->getUserManager()->get('gunslinger')->getDisplayName();
$result = \OC::$server->getUserManager()->get('gunslinger')?->getDisplayName();
$this->assertEquals('Roland Deschain', $result);

//empty displayname retrieved
Expand Down Expand Up @@ -1052,6 +1094,8 @@ public function testLoginName2UserNameSuccess() {
->method('get')
->with($dn)
->willReturn($user);
$this->userManager->expects($this->never())
->method('exists');
$this->userManager->expects($this->any())
->method('getAttributes')
->willReturn(['dn', 'uid', 'mail', 'displayname']);
Expand Down

0 comments on commit c3029c7

Please sign in to comment.