diff options
Diffstat (limited to 'apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php')
-rw-r--r-- | apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php | 60 |
1 files changed, 28 insertions, 32 deletions
diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php index 81e2de72ec1..6f0960bf46c 100644 --- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php +++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud GmbH. @@ -10,6 +11,8 @@ use OCA\Files_Sharing\Command\CleanupRemoteStorages; use OCP\Federation\ICloudId; use OCP\Federation\ICloudIdManager; use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; @@ -23,20 +26,9 @@ use Test\TestCase; */ class CleanupRemoteStoragesTest extends TestCase { - /** - * @var CleanupRemoteStorages - */ - private $command; - - /** - * @var IDBConnection - */ - private $connection; - - /** - * @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject - */ - private $cloudIdManager; + protected IDBConnection $connection; + protected CleanupRemoteStorages $command; + private ICloudIdManager&MockObject $cloudIdManager; private $storages = [ ['id' => 'shared::7b4a322b22f9d0047c38d77d471ce3cf', 'share_token' => 'f2c69dad1dc0649f26976fd210fc62e1', 'remote' => 'https://hostname.tld/owncloud1', 'user' => 'user1'], @@ -51,13 +43,13 @@ class CleanupRemoteStoragesTest extends TestCase { protected function setUp(): void { parent::setUp(); - $this->connection = \OC::$server->getDatabaseConnection(); + $this->connection = Server::get(IDBConnection::class); - $storageQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $storageQuery = Server::get(IDBConnection::class)->getQueryBuilder(); $storageQuery->insert('storages') ->setValue('id', $storageQuery->createParameter('id')); - $shareExternalQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $shareExternalQuery = Server::get(IDBConnection::class)->getQueryBuilder(); $shareExternalQuery->insert('share_external') ->setValue('share_token', $shareExternalQuery->createParameter('share_token')) ->setValue('remote', $shareExternalQuery->createParameter('remote')) @@ -67,7 +59,7 @@ class CleanupRemoteStoragesTest extends TestCase { ->setValue('mountpoint', $shareExternalQuery->createParameter('mountpoint')) ->setValue('mountpoint_hash', $shareExternalQuery->createParameter('mountpoint_hash')); - $filesQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $filesQuery = Server::get(IDBConnection::class)->getQueryBuilder(); $filesQuery->insert('filecache') ->setValue('storage', $filesQuery->createParameter('storage')) ->setValue('path', $filesQuery->createParameter('path')) @@ -76,7 +68,7 @@ class CleanupRemoteStoragesTest extends TestCase { foreach ($this->storages as &$storage) { if (isset($storage['id'])) { $storageQuery->setParameter('id', $storage['id']); - $storageQuery->execute(); + $storageQuery->executeStatement(); $storage['numeric_id'] = $storageQuery->getLastInsertId(); } @@ -108,11 +100,11 @@ class CleanupRemoteStoragesTest extends TestCase { } protected function tearDown(): void { - $storageQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $storageQuery = Server::get(IDBConnection::class)->getQueryBuilder(); $storageQuery->delete('storages') ->where($storageQuery->expr()->eq('id', $storageQuery->createParameter('id'))); - $shareExternalQuery = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $shareExternalQuery = Server::get(IDBConnection::class)->getQueryBuilder(); $shareExternalQuery->delete('share_external') ->where($shareExternalQuery->expr()->eq('share_token', $shareExternalQuery->createParameter('share_token'))) ->andWhere($shareExternalQuery->expr()->eq('remote', $shareExternalQuery->createParameter('remote'))); @@ -120,13 +112,13 @@ class CleanupRemoteStoragesTest extends TestCase { foreach ($this->storages as $storage) { if (isset($storage['id'])) { $storageQuery->setParameter('id', $storage['id']); - $storageQuery->execute(); + $storageQuery->executeStatement(); } if (isset($storage['share_token'])) { $shareExternalQuery->setParameter('share_token', $storage['share_token']); $shareExternalQuery->setParameter('remote', $storage['remote']); - $shareExternalQuery->execute(); + $shareExternalQuery->executeStatement(); } } @@ -134,7 +126,7 @@ class CleanupRemoteStoragesTest extends TestCase { } private function doesStorageExist($numericId) { - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->select('*') ->from('storages') ->where($qb->expr()->eq('numeric_id', $qb->createNamedParameter($numericId))); @@ -146,7 +138,7 @@ class CleanupRemoteStoragesTest extends TestCase { return true; } - $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->select('*') ->from('filecache') ->where($qb->expr()->eq('storage', $qb->createNamedParameter($numericId))); @@ -173,19 +165,18 @@ class CleanupRemoteStoragesTest extends TestCase { ->getMock(); // parent folder, `files`, ´test` and `welcome.txt` => 4 elements - + $outputCalls = []; $output ->expects($this->any()) ->method('writeln') - ->withConsecutive( - ['5 remote storage(s) need(s) to be checked'], - ['5 remote share(s) exist'], - ); + ->willReturnCallback(function (string $text) use (&$outputCalls): void { + $outputCalls[] = $text; + }); $this->cloudIdManager ->expects($this->any()) ->method('getCloudId') - ->will($this->returnCallback(function (string $user, string $remote) { + ->willReturnCallback(function (string $user, string $remote) { $cloudIdMock = $this->createMock(ICloudId::class); // The remotes are already sanitized in the original data, so @@ -196,7 +187,7 @@ class CleanupRemoteStoragesTest extends TestCase { ->willReturn($remote); return $cloudIdMock; - })); + }); $this->command->execute($input, $output); @@ -205,5 +196,10 @@ class CleanupRemoteStoragesTest extends TestCase { $this->assertFalse($this->doesStorageExist($this->storages[3]['numeric_id'])); $this->assertTrue($this->doesStorageExist($this->storages[4]['numeric_id'])); $this->assertFalse($this->doesStorageExist($this->storages[5]['numeric_id'])); + + $this->assertEquals([ + '5 remote storage(s) need(s) to be checked', + '5 remote share(s) exist', + ], array_slice($outputCalls, 0, 2)); } } |