diff options
-rw-r--r-- | lib/private/User/Database.php | 7 | ||||
-rw-r--r-- | tests/lib/User/DatabaseTest.php | 13 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index 4252f57ba36..31488247939 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -487,9 +487,12 @@ class Database extends ABackend implements $query = $dbConn->getQueryBuilder(); $query->select($query->func()->count('uid')) ->from($this->table); - $result = $query->executeQuery(); + $result = $query->executeQuery()->fetchOne(); + if ($result === false) { + return false; + } - return $result->fetchOne(); + return (int)$result; } /** diff --git a/tests/lib/User/DatabaseTest.php b/tests/lib/User/DatabaseTest.php index bd74ab333fb..900f0ddd3fa 100644 --- a/tests/lib/User/DatabaseTest.php +++ b/tests/lib/User/DatabaseTest.php @@ -25,6 +25,9 @@ class DatabaseTest extends Backend { /** @var IEventDispatcher|MockObject */ private $eventDispatcher; + /** @var \OC\User\Database */ + protected $backend; + public function getUser() { $user = parent::getUser(); $this->users[] = $user; @@ -139,4 +142,14 @@ class DatabaseTest extends Backend { $result = $this->backend->getDisplayNames('@nextcloud.COM'); $this->assertCount(2, $result); } + + public function testUserCount(): void { + $base = $this->backend->countUsers() ?: 0; + $users = $this->backend->getUsers(); + self::assertEquals($base, count($users)); + + $user = $this->getUser(); + $this->backend->createUser($user, $user); + self::assertEquals($base + 1, $this->backend->countUsers()); + } } |