diff --git a/src/Api/Operator/Database.php b/src/Api/Operator/Database.php index 817adec5..ea34ab24 100644 --- a/src/Api/Operator/Database.php +++ b/src/Api/Operator/Database.php @@ -78,7 +78,7 @@ public function getAll(?string $field, $value): array $response = $this->getBy('get-db', $field, $value); $items = []; foreach ((array) $response->xpath('//result') as $xmlResult) { - if ($xmlResult) { + if (isset($xmlResult->id) && (int) $xmlResult->id > 0) { $items[] = new Struct\Info($xmlResult); } } diff --git a/tests/DatabaseTest.php b/tests/DatabaseTest.php index 1b2b1c5f..e7c65c68 100644 --- a/tests/DatabaseTest.php +++ b/tests/DatabaseTest.php @@ -225,4 +225,15 @@ private function createUser(array $params): \PleskX\Api\Struct\Database\UserInfo return $user; } + + public function testGetAllForWebspaceWithNoDatabases() + { + $webspace = static::createWebspace(); + $databases = static::$client->database()->getAll('webspace-id', $webspace->id); + + $this->assertIsArray($databases); + $this->assertEmpty($databases); + + static::$client->webspace()->delete('id', $webspace->id); + } }