diff --git a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php index f29b88c5085da..21c949bf56d18 100644 --- a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php +++ b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php @@ -11,9 +11,13 @@ use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; +#[Group('DB')] class BackendTest extends TestCase { private ReminderBackend $reminderBackend; private ITimeFactory&MockObject $timeFactory; @@ -21,19 +25,19 @@ class BackendTest extends TestCase { protected function setUp(): void { parent::setUp(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->delete('calendar_reminders')->executeStatement(); $query->delete('calendarobjects')->executeStatement(); $query->delete('calendars')->executeStatement(); $this->timeFactory = $this->createMock(ITimeFactory::class); - $this->reminderBackend = new ReminderBackend(self::$realDatabase, $this->timeFactory); + $this->reminderBackend = new ReminderBackend(Server::get(IDBConnection::class), $this->timeFactory); $this->createRemindersTestSet(); } protected function tearDown(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->delete('calendar_reminders')->executeStatement(); $query->delete('calendarobjects')->executeStatement(); $query->delete('calendars')->executeStatement(); @@ -42,7 +46,7 @@ protected function tearDown(): void { } public function testCleanRemindersForEvent(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -52,7 +56,7 @@ public function testCleanRemindersForEvent(): void { $this->reminderBackend->cleanRemindersForEvent(1); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -62,7 +66,7 @@ public function testCleanRemindersForEvent(): void { } public function testCleanRemindersForCalendar(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -72,7 +76,7 @@ public function testCleanRemindersForCalendar(): void { $this->reminderBackend->cleanRemindersForCalendar(1); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -82,7 +86,7 @@ public function testCleanRemindersForCalendar(): void { } public function testRemoveReminder(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -92,7 +96,7 @@ public function testRemoveReminder(): void { $this->reminderBackend->removeReminder((int)$rows[3]['id']); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -189,7 +193,7 @@ public function testGetAllScheduledRemindersForEvent(): void { } public function testInsertReminder(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -200,7 +204,7 @@ public function testInsertReminder(): void { $this->reminderBackend->insertReminder(42, 1337, 'uid99', true, 12345678, true, 'hash99', 'hash42', 'AUDIO', false, 12345670, false); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -227,7 +231,7 @@ public function testInsertReminder(): void { } public function testUpdateReminder(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $rows = $query->select('*') ->from('calendar_reminders') ->executeQuery() @@ -242,7 +246,7 @@ public function testUpdateReminder(): void { $this->reminderBackend->updateReminder($reminderId, $newNotificationDate); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $row = $query->select('notification_date') ->from('calendar_reminders') ->where($query->expr()->eq('id', $query->createNamedParameter($reminderId))) @@ -253,7 +257,7 @@ public function testUpdateReminder(): void { } private function createRemindersTestSet(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendars') ->values([ 'id' => $query->createNamedParameter(1), @@ -262,7 +266,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendars') ->values([ 'id' => $query->createNamedParameter(99), @@ -271,7 +275,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendarobjects') ->values([ 'id' => $query->createNamedParameter(1), @@ -281,7 +285,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendarobjects') ->values([ 'id' => $query->createNamedParameter(2), @@ -291,7 +295,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendarobjects') ->values([ 'id' => $query->createNamedParameter(10), @@ -301,7 +305,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendar_reminders') ->values([ 'calendar_id' => $query->createNamedParameter(1), @@ -319,7 +323,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendar_reminders') ->values([ 'calendar_id' => $query->createNamedParameter(1), @@ -337,7 +341,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendar_reminders') ->values([ 'calendar_id' => $query->createNamedParameter(1), @@ -355,7 +359,7 @@ private function createRemindersTestSet(): void { ]) ->executeStatement(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendar_reminders') ->values([ 'calendar_id' => $query->createNamedParameter(99), diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php index d13443c8c66e8..a1a185a07fbba 100644 --- a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php +++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php @@ -12,9 +12,11 @@ use OCA\DAV\CalDAV\Proxy\ProxyMapper; use OCA\DAV\CalDAV\ResourceBooking\ResourcePrincipalBackend; use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend; +use OCP\IDBConnection; use OCP\IGroupManager; use OCP\IUser; use OCP\IUserSession; +use OCP\Server; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Sabre\DAV\PropPatch; @@ -42,7 +44,7 @@ protected function setUp(): void { } protected function tearDown(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->delete('calendar_resources')->executeStatement(); $query->delete('calendar_resources_md')->executeStatement(); @@ -52,8 +54,7 @@ protected function tearDown(): void { public function testGetPrincipalsByPrefix(): void { $actual = $this->principalBackend->getPrincipalsByPrefix($this->principalPrefix); - - $this->assertEquals([ + $this->assertEqualsCanonicalizing([ [ 'uri' => $this->principalPrefix . '/backend1-res1', '{DAV:}displayname' => 'Beamer1', @@ -264,7 +265,8 @@ public function testSearchPrincipals($expected, $test): void { '{DAV:}displayname' => 'Beamer', ], $test); - $this->assertEquals( + // The query has no ORDER BY, so result order is not guaranteed by the DB + $this->assertEqualsCanonicalizing( str_replace('%prefix%', $this->principalPrefix, $expected), $actual); } @@ -454,7 +456,7 @@ public function testFindByUriByUnknownUri(): void { } protected function createTestDatasetInDb() { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert($this->mainDbTable) ->values([ 'backend_id' => $query->createNamedParameter('backend1'), diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php index 1e3068cdfc4f1..3824b711d7ad5 100644 --- a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php @@ -9,12 +9,16 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking; use OCA\DAV\CalDAV\ResourceBooking\ResourcePrincipalBackend; +use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\Attributes\Group; +#[Group('DB')] class ResourcePrincipalBackendTest extends AbstractPrincipalBackendTestCase { protected function setUp(): void { parent::setUp(); - $this->principalBackend = new ResourcePrincipalBackend(self::$realDatabase, + $this->principalBackend = new ResourcePrincipalBackend(Server::get(IDBConnection::class), $this->userSession, $this->groupManager, $this->logger, $this->proxyMapper); $this->mainDbTable = 'calendar_resources'; diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php index 845ff74dc1016..4cbc88f6ace0d 100644 --- a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php @@ -9,12 +9,16 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking; use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend; +use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\Attributes\Group; +#[Group('DB')] class RoomPrincipalBackendTest extends AbstractPrincipalBackendTestCase { protected function setUp(): void { parent::setUp(); - $this->principalBackend = new RoomPrincipalBackend(self::$realDatabase, + $this->principalBackend = new RoomPrincipalBackend(Server::get(IDBConnection::class), $this->userSession, $this->groupManager, $this->logger, $this->proxyMapper); $this->mainDbTable = 'calendar_rooms'; diff --git a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php index f6f924b91fdf3..e59df1fa0f4ed 100644 --- a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php +++ b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php @@ -13,8 +13,12 @@ use OCA\UserStatus\Db\UserStatusMapper; use OCP\AppFramework\Db\DoesNotExistException; use OCP\DB\Exception; +use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\Attributes\Group; use Test\TestCase; +#[Group('DB')] class UserStatusMapperTest extends TestCase { private UserStatusMapper $mapper; @@ -22,10 +26,10 @@ protected function setUp(): void { parent::setUp(); // make sure that DB is empty - $qb = self::$realDatabase->getQueryBuilder(); + $qb = Server::get(IDBConnection::class)->getQueryBuilder(); $qb->delete('user_status')->executeStatement(); - $this->mapper = new UserStatusMapper(self::$realDatabase); + $this->mapper = new UserStatusMapper(Server::get(IDBConnection::class)); } public function testGetTableName(): void { diff --git a/tests/lib/Calendar/ResourcesRoomsUpdaterTest.php b/tests/lib/Calendar/ResourcesRoomsUpdaterTest.php index e74ba90c96532..9a85264cca2bd 100644 --- a/tests/lib/Calendar/ResourcesRoomsUpdaterTest.php +++ b/tests/lib/Calendar/ResourcesRoomsUpdaterTest.php @@ -17,6 +17,9 @@ use OCP\Calendar\Resource\IManager as IResourceManager; use OCP\Calendar\Resource\IResource; use OCP\Calendar\Room\IManager as IRoomManager; +use OCP\IDBConnection; +use OCP\Server; +use PHPUnit\Framework\Attributes\Group; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use Test\TestCase; @@ -24,6 +27,7 @@ interface tmpI extends IResource, IMetadataProvider { } +#[Group('DB')] class ResourcesRoomsUpdaterTest extends TestCase { private ResourcesRoomsUpdater $updater; @@ -56,14 +60,14 @@ protected function setUp(): void { $this->updater = new ResourcesRoomsUpdater( $this->container, - self::$realDatabase, + Server::get(IDBConnection::class), $this->calDavBackend ); } #[\Override] protected function tearDown(): void { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->delete('calendar_resources')->executeStatement(); $query->delete('calendar_resources_md')->executeStatement(); $query->delete('calendar_rooms')->executeStatement(); @@ -209,7 +213,7 @@ public function testUpdateBoth(): void { $this->updater->updateResources(); $this->updater->updateRooms(); - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->select('*')->from('calendar_resources'); $rows = []; @@ -221,7 +225,7 @@ public function testUpdateBoth(): void { $rows[] = $row; } - $this->assertEquals([ + $this->assertEqualsCanonicalizing([ [ 'backend_id' => 'backend1', 'resource_id' => 'res1', @@ -280,7 +284,7 @@ public function testUpdateBoth(): void { ], ], $rows); - $query2 = self::$realDatabase->getQueryBuilder(); + $query2 = Server::get(IDBConnection::class)->getQueryBuilder(); $query2->select('*')->from('calendar_resources_md'); $rows2 = []; @@ -290,7 +294,7 @@ public function testUpdateBoth(): void { $rows2[] = $row; } - $this->assertEquals([ + $this->assertEqualsCanonicalizing([ [ 'resource_id' => $ids['backend2::res3'], 'key' => 'meta1', @@ -335,7 +339,7 @@ public function testUpdateBoth(): void { } protected function createTestResourcesInCache() { - $query = self::$realDatabase->getQueryBuilder(); + $query = Server::get(IDBConnection::class)->getQueryBuilder(); $query->insert('calendar_resources') ->values([ 'backend_id' => $query->createNamedParameter('backend1'), diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index aa091b98113ef..0d54d7c6f64df 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -43,7 +43,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase { private QueueBus $commandBus; /** @psalm-suppress ImpureStaticProperty For tests it's not an issue */ - protected static ?IDBConnection $realDatabase = null; + private static ?IDBConnection $realDatabase = null; /** @psalm-suppress ImpureStaticProperty */ private static bool $wasDatabaseAllowed = false; protected array $services = [];