aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/tests
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/tests')
-rw-r--r--apps/dav/tests/unit/AppInfo/ApplicationTest.php1
-rw-r--r--apps/dav/tests/unit/AppInfo/PluginManagerTest.php2
-rw-r--r--apps/dav/tests/unit/Avatars/AvatarHomeTest.php20
-rw-r--r--apps/dav/tests/unit/Avatars/AvatarNodeTest.php8
-rw-r--r--apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php12
-rw-r--r--apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php31
-rw-r--r--apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php29
-rw-r--r--apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php16
-rw-r--r--apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php20
-rw-r--r--apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php22
-rw-r--r--apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php22
-rw-r--r--apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php48
-rw-r--r--apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php12
-rw-r--r--apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php19
-rw-r--r--apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php20
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/BackendTest.php57
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php25
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php42
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php54
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php28
-rw-r--r--apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php17
-rw-r--r--apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php7
-rw-r--r--apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php5
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php6
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php3
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php48
-rw-r--r--apps/dav/tests/unit/CalDAV/CalDavBackendTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarHomeTest.php28
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarImplTest.php11
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarManagerTest.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarTest.php57
-rw-r--r--apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php3
-rw-r--r--apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php9
-rw-r--r--apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php9
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php19
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php27
-rw-r--r--apps/dav/tests/unit/CalDAV/OutboxTest.php11
-rw-r--r--apps/dav/tests/unit/CalDAV/PluginTest.php12
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php39
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarTest.php22
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php8
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php27
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php49
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php (renamed from apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php)45
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php82
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php25
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php36
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php202
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php (renamed from apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php)119
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php66
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php86
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php66
-rw-r--r--apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php10
-rw-r--r--apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php18
-rw-r--r--apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php1
-rw-r--r--apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php12
-rw-r--r--apps/dav/tests/unit/CalDAV/TipBrokerTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php7
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php34
-rw-r--r--apps/dav/tests/unit/CapabilitiesTest.php2
-rw-r--r--apps/dav/tests/unit/CardDAV/Activity/BackendTest.php62
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookImplTest.php75
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookTest.php32
-rw-r--r--apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php130
-rw-r--r--apps/dav/tests/unit/CardDAV/CardDavBackendTest.php107
-rw-r--r--apps/dav/tests/unit/CardDAV/ContactsManagerTest.php12
-rw-r--r--apps/dav/tests/unit/CardDAV/ConverterTest.php43
-rw-r--r--apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php69
-rw-r--r--apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php10
-rw-r--r--apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php28
-rw-r--r--apps/dav/tests/unit/CardDAV/SyncServiceTest.php46
-rw-r--r--apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php12
-rw-r--r--apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php14
-rw-r--r--apps/dav/tests/unit/Command/DeleteCalendarTest.php25
-rw-r--r--apps/dav/tests/unit/Command/ListAddressbooksTest.php9
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarSharesTest.php2
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarsTest.php19
-rw-r--r--apps/dav/tests/unit/Command/MoveCalendarTest.php204
-rw-r--r--apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php14
-rw-r--r--apps/dav/tests/unit/Comments/CommentsNodeTest.php91
-rw-r--r--apps/dav/tests/unit/Comments/CommentsPluginTest.php50
-rw-r--r--apps/dav/tests/unit/Comments/EntityCollectionTest.php44
-rw-r--r--apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php42
-rw-r--r--apps/dav/tests/unit/Comments/RootCollectionTest.php52
-rw-r--r--apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php74
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/AuthTest.php221
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php18
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php2
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php80
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php17
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php48
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php61
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php17
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php6
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php6
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php16
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php69
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FileTest.php106
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php139
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php221
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php15
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/NodeTest.php70
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php98
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php89
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php5
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php7
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php4
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php18
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php9
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php143
-rw-r--r--apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php52
-rw-r--r--apps/dav/tests/unit/Controller/DirectControllerTest.php31
-rw-r--r--apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php30
-rw-r--r--apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php7
-rw-r--r--apps/dav/tests/unit/DAV/AnonymousOptionsTest.php6
-rw-r--r--apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php18
-rw-r--r--apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php42
-rw-r--r--apps/dav/tests/unit/DAV/GroupPrincipalTest.php40
-rw-r--r--apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php16
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/BackendTest.php16
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/PluginTest.php22
-rw-r--r--apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php38
-rw-r--r--apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php24
-rw-r--r--apps/dav/tests/unit/Direct/DirectFileTest.php27
-rw-r--r--apps/dav/tests/unit/Direct/DirectHomeTest.php31
-rw-r--r--apps/dav/tests/unit/Files/FileSearchBackendTest.php76
-rw-r--r--apps/dav/tests/unit/Files/MultipartRequestParserTest.php37
-rw-r--r--apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php6
-rw-r--r--apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php12
-rw-r--r--apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php26
-rw-r--r--apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php22
-rw-r--r--apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php40
-rw-r--r--apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php4
-rw-r--r--apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php52
-rw-r--r--apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php15
-rw-r--r--apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php54
-rw-r--r--apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php11
-rw-r--r--apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php74
-rw-r--r--apps/dav/tests/unit/Search/ContactsSearchProviderTest.php36
-rw-r--r--apps/dav/tests/unit/Search/EventsSearchProviderTest.php74
-rw-r--r--apps/dav/tests/unit/Search/TasksSearchProviderTest.php67
-rw-r--r--apps/dav/tests/unit/ServerTest.php5
-rw-r--r--apps/dav/tests/unit/Service/AbsenceServiceTest.php23
-rw-r--r--apps/dav/tests/unit/Service/DefaultContactServiceTest.php20
-rw-r--r--apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php12
-rw-r--r--apps/dav/tests/unit/Settings/CalDAVSettingsTest.php58
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php31
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php79
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php185
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php69
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php40
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php46
-rw-r--r--apps/dav/tests/unit/Upload/AssemblyStreamTest.php73
-rw-r--r--apps/dav/tests/unit/Upload/ChunkingPluginTest.php109
-rw-r--r--apps/dav/tests/unit/Upload/FutureFileTest.php14
175 files changed, 2617 insertions, 3948 deletions
diff --git a/apps/dav/tests/unit/AppInfo/ApplicationTest.php b/apps/dav/tests/unit/AppInfo/ApplicationTest.php
index f8ddd9bb821..336f487e0b8 100644
--- a/apps/dav/tests/unit/AppInfo/ApplicationTest.php
+++ b/apps/dav/tests/unit/AppInfo/ApplicationTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
index 7a60888a838..0082aa45286 100644
--- a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
+++ b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
index 9699c146c8a..aaa930b6c19 100644
--- a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
+++ b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
@@ -1,27 +1,25 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Avatars;
+namespace OCA\DAV\Tests\unit\Avatars;
use OCA\DAV\Avatars\AvatarHome;
use OCA\DAV\Avatars\AvatarNode;
use OCP\IAvatar;
use OCP\IAvatarManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
use Test\TestCase;
class AvatarHomeTest extends TestCase {
-
- /** @var AvatarHome */
- private $home;
-
- /** @var IAvatarManager | \PHPUnit\Framework\MockObject\MockObject */
- private $avatarManager;
+ private AvatarHome $home;
+ private IAvatarManager&MockObject $avatarManager;
protected function setUp(): void {
parent::setUp();
@@ -38,7 +36,7 @@ class AvatarHomeTest extends TestCase {
$this->home->$method('');
}
- public function providesForbiddenMethods() {
+ public static function providesForbiddenMethods(): array {
return [
['createFile'],
['createDirectory'],
@@ -52,7 +50,7 @@ class AvatarHomeTest extends TestCase {
self::assertEquals('admin', $n);
}
- public function providesTestGetChild() {
+ public static function providesTestGetChild(): array {
return [
[MethodNotAllowed::class, false, ''],
[MethodNotAllowed::class, false, 'bla.foo'],
@@ -65,7 +63,7 @@ class AvatarHomeTest extends TestCase {
/**
* @dataProvider providesTestGetChild
*/
- public function testGetChild($expectedException, $hasAvatar, $path): void {
+ public function testGetChild(?string $expectedException, bool $hasAvatar, string $path): void {
if ($expectedException !== null) {
$this->expectException($expectedException);
}
@@ -92,7 +90,7 @@ class AvatarHomeTest extends TestCase {
/**
* @dataProvider providesTestGetChild
*/
- public function testChildExists($expectedException, $hasAvatar, $path): void {
+ public function testChildExists(?string $expectedException, bool $hasAvatar, string $path): void {
$avatar = $this->createMock(IAvatar::class);
$avatar->method('exists')->willReturn($hasAvatar);
diff --git a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
index 92c02e17ff8..0ca147a1f3b 100644
--- a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
+++ b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
@@ -1,26 +1,28 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Avatars;
+namespace OCA\DAV\Tests\unit\Avatars;
use OCA\DAV\Avatars\AvatarNode;
use OCP\IAvatar;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AvatarNodeTest extends TestCase {
public function testGetName(): void {
- /** @var IAvatar | \PHPUnit\Framework\MockObject\MockObject $a */
+ /** @var IAvatar&MockObject $a */
$a = $this->createMock(IAvatar::class);
$n = new AvatarNode(1024, 'png', $a);
$this->assertEquals('1024.png', $n->getName());
}
public function testGetContentType(): void {
- /** @var IAvatar | \PHPUnit\Framework\MockObject\MockObject $a */
+ /** @var IAvatar&MockObject $a */
$a = $this->createMock(IAvatar::class);
$n = new AvatarNode(1024, 'png', $a);
$this->assertEquals('image/png', $n->getContentType());
diff --git a/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php b/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
index 21e999d34be..b2199e3e657 100644
--- a/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
@@ -13,17 +13,13 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\DB\QueryBuilder\IExpressionBuilder;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CleanupInvitationTokenJobTest extends TestCase {
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
-
- /** @var ITimeFactory | \PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var CleanupInvitationTokenJob */
- private $backgroundJob;
+ private IDBConnection&MockObject $dbConnection;
+ private ITimeFactory&MockObject $timeFactory;
+ private CleanupInvitationTokenJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php b/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
index fe05616d609..2065b8fe946 100644
--- a/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
@@ -103,14 +103,13 @@ class CleanupOrphanedChildrenJobTest extends TestCase {
$deleteQb = $this->getMockQueryBuilder();
$result = $this->createMock(IResult::class);
- $qbInvocationCount = self::exactly(2);
- $this->connection->expects($qbInvocationCount)
- ->method('getQueryBuilder')
- ->willReturnCallback(function () use ($qbInvocationCount, $selectQb, $deleteQb) {
- return match ($qbInvocationCount->getInvocationCount()) {
- 1 => $selectQb,
- 2 => $deleteQb,
- };
+ $calls = [
+ $selectQb,
+ $deleteQb,
+ ];
+ $this->connection->method('getQueryBuilder')
+ ->willReturnCallback(function () use (&$calls) {
+ return array_shift($calls);
});
$selectQb->expects(self::once())
->method('executeQuery')
@@ -140,15 +139,15 @@ class CleanupOrphanedChildrenJobTest extends TestCase {
$deleteQb = $this->getMockQueryBuilder();
$result = $this->createMock(IResult::class);
- $qbInvocationCount = self::exactly(2);
- $this->connection->expects($qbInvocationCount)
- ->method('getQueryBuilder')
- ->willReturnCallback(function () use ($qbInvocationCount, $selectQb, $deleteQb) {
- return match ($qbInvocationCount->getInvocationCount()) {
- 1 => $selectQb,
- 2 => $deleteQb,
- };
+ $calls = [
+ $selectQb,
+ $deleteQb,
+ ];
+ $this->connection->method('getQueryBuilder')
+ ->willReturnCallback(function () use (&$calls) {
+ return array_shift($calls);
});
+
$selectQb->expects(self::once())
->method('executeQuery')
->willReturn($result);
diff --git a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
index 1173e516a22..1f70869f211 100644
--- a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
@@ -16,17 +16,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EventReminderJobTest extends TestCase {
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var ReminderService|MockObject */
- private $reminderService;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var EventReminderJob|MockObject */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private ReminderService&MockObject $reminderService;
+ private IConfig&MockObject $config;
+ private EventReminderJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
@@ -42,7 +35,7 @@ class EventReminderJobTest extends TestCase {
);
}
- public function data(): array {
+ public static function data(): array {
return [
[true, true, true],
[true, false, false],
@@ -61,14 +54,10 @@ class EventReminderJobTest extends TestCase {
public function testRun(bool $sendEventReminders, bool $sendEventRemindersMode, bool $expectCall): void {
$this->config->expects($this->exactly($sendEventReminders ? 2 : 1))
->method('getAppValue')
- ->withConsecutive(
- ['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersMode', 'backgroundjob'],
- )
- ->willReturnOnConsecutiveCalls(
- $sendEventReminders ? 'yes' : 'no',
- $sendEventRemindersMode ? 'backgroundjob' : 'cron'
- );
+ ->willReturnMap([
+ ['dav', 'sendEventReminders', 'yes', ($sendEventReminders ? 'yes' : 'no')],
+ ['dav', 'sendEventRemindersMode', 'backgroundjob', ($sendEventRemindersMode ? 'backgroundjob' : 'cron')],
+ ]);
if ($expectCall) {
$this->reminderService->expects($this->once())
diff --git a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
index 82d2251f17a..88a76ae1332 100644
--- a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
@@ -16,18 +16,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class GenerateBirthdayCalendarBackgroundJobTest extends TestCase {
-
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var BirthdayService | MockObject */
- private $birthdayService;
-
- /** @var IConfig | MockObject */
- private $config;
-
- /** @var GenerateBirthdayCalendarBackgroundJob */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private BirthdayService&MockObject $birthdayService;
+ private IConfig&MockObject $config;
+ private GenerateBirthdayCalendarBackgroundJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php b/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
index 5ddd9eba6f8..6135fd00fdc 100644
--- a/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
@@ -25,21 +25,11 @@ use Test\TestCase;
class OutOfOfficeEventDispatcherJobTest extends TestCase {
private OutOfOfficeEventDispatcherJob $job;
-
- /** @var MockObject|ITimeFactory */
- private $timeFactory;
-
- /** @var MockObject|AbsenceMapper */
- private $absenceMapper;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
-
- /** @var MockObject|IEventDispatcher */
- private $eventDispatcher;
-
- /** @var MockObject|IUserManager */
- private $userManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private AbsenceMapper&MockObject $absenceMapper;
+ private LoggerInterface&MockObject $logger;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserManager&MockObject $userManager;
private MockObject|TimezoneService $timezoneService;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php b/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
index d08d0fd4496..eb471189c24 100644
--- a/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
@@ -20,21 +20,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class PruneOutdatedSyncTokensJobTest extends TestCase {
- /** @var ITimeFactory | MockObject */
- private $timeFactory;
-
- /** @var CalDavBackend | MockObject */
- private $calDavBackend;
-
- /** @var CardDavBackend | MockObject */
- private $cardDavBackend;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private ITimeFactory&MockObject $timeFactory;
+ private CalDavBackend&MockObject $calDavBackend;
+ private CardDavBackend&MockObject $cardDavBackend;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
private PruneOutdatedSyncTokensJob $backgroundJob;
protected function setUp(): void {
@@ -84,7 +74,7 @@ class PruneOutdatedSyncTokensJobTest extends TestCase {
$this->backgroundJob->run(null);
}
- public function dataForTestRun(): array {
+ public static function dataForTestRun(): array {
return [
['100', '2', 100, 7 * 24 * 3600, 2, 3],
['100', '14', 100, 14 * 24 * 3600, 2, 3],
diff --git a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
index 2b11223210e..0cdeb6436e2 100644
--- a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
@@ -19,20 +19,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class RefreshWebcalJobTest extends TestCase {
-
- /** @var RefreshWebcalService | MockObject */
- private $refreshWebcalService;
-
- /** @var IConfig | MockObject */
- private $config;
-
+ private RefreshWebcalService&MockObject $refreshWebcalService;
+ private IConfig&MockObject $config;
private LoggerInterface $logger;
-
- /** @var ITimeFactory | MockObject */
- private $timeFactory;
-
- /** @var IJobList | MockObject */
- private $jobList;
+ private ITimeFactory&MockObject $timeFactory;
+ private IJobList&MockObject $jobList;
protected function setUp(): void {
parent::setUp();
@@ -97,10 +88,7 @@ class RefreshWebcalJobTest extends TestCase {
$backgroundJob->start($this->jobList);
}
- /**
- * @return array
- */
- public function runDataProvider():array {
+ public static function runDataProvider():array {
return [
[0, 100000, true],
[100000, 100000, false]
diff --git a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
index 88493d91d9b..6c9214d0268 100644
--- a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
@@ -14,20 +14,14 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RegisterRegenerateBirthdayCalendarsTest extends TestCase {
- /** @var ITimeFactory | \PHPUnit\Framework\MockObject\MockObject */
- private $time;
-
- /** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var RegisterRegenerateBirthdayCalendars */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private IUserManager&MockObject $userManager;
+ private IJobList&MockObject $jobList;
+ private RegisterRegenerateBirthdayCalendars $backgroundJob;
protected function setUp(): void {
parent::setUp();
@@ -59,22 +53,26 @@ class RegisterRegenerateBirthdayCalendarsTest extends TestCase {
$closure($user3);
});
+ $calls = [
+ 'uid1',
+ 'uid2',
+ 'uid3',
+ ];
$this->jobList->expects($this->exactly(3))
->method('add')
- ->withConsecutive(
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid1',
- 'purgeBeforeGenerating' => true
- ]],
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid2',
- 'purgeBeforeGenerating' => true
- ]],
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid3',
- 'purgeBeforeGenerating' => true
- ]],
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals(
+ [
+ GenerateBirthdayCalendarBackgroundJob::class,
+ [
+ 'userId' => $expected,
+ 'purgeBeforeGenerating' => true
+ ]
+ ],
+ func_get_args()
+ );
+ });
$this->backgroundJob->run([]);
}
diff --git a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
index 18ee0c5c61d..38a981787cd 100644
--- a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
@@ -18,15 +18,9 @@ use Test\TestCase;
class UpdateCalendarResourcesRoomsBackgroundJobTest extends TestCase {
private UpdateCalendarResourcesRoomsBackgroundJob $backgroundJob;
-
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var IResourceManager|MockObject */
- private $resourceManager;
-
- /** @var IRoomManager|MockObject */
- private $roomManager;
+ private ITimeFactory&MockObject $time;
+ private IResourceManager&MockObject $resourceManager;
+ private IRoomManager&MockObject $roomManager;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php b/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
index ce3871aa400..369242ad488 100644
--- a/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
@@ -29,14 +29,13 @@ use Test\TestCase;
* @group DB
*/
class UserStatusAutomationTest extends TestCase {
-
- protected MockObject|ITimeFactory $time;
- protected MockObject|IJobList $jobList;
- protected MockObject|LoggerInterface $logger;
- protected MockObject|IManager $statusManager;
- protected MockObject|IConfig $config;
- private IAvailabilityCoordinator|MockObject $coordinator;
- private IUserManager|MockObject $userManager;
+ protected ITimeFactory&MockObject $time;
+ protected IJobList&MockObject $jobList;
+ protected LoggerInterface&MockObject $logger;
+ protected IManager&MockObject $statusManager;
+ protected IConfig&MockObject $config;
+ private IAvailabilityCoordinator&MockObject $coordinator;
+ private IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -76,11 +75,11 @@ class UserStatusAutomationTest extends TestCase {
$this->coordinator,
$this->userManager,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
- public function dataRun(): array {
+ public static function dataRun(): array {
return [
['20230217', '2023-02-24 10:49:36.613834', true],
['20230224', '2023-02-24 10:49:36.613834', true],
diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
index c1d8e8609b6..45937d86873 100644
--- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
+++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
@@ -44,12 +44,12 @@ abstract class AbstractCalDavBackend extends TestCase {
protected CalDavBackend $backend;
- protected Principal|MockObject $principal;
- protected IUserManager|MockObject $userManager;
- protected IGroupManager|MockObject $groupManager;
- protected IEventDispatcher|MockObject $dispatcher;
- private LoggerInterface|MockObject $logger;
- private IConfig|MockObject $config;
+ protected Principal&MockObject $principal;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IEventDispatcher&MockObject $dispatcher;
+ private LoggerInterface&MockObject $logger;
+ private IConfig&MockObject $config;
private ISecureRandom $random;
protected SharingBackend $sharingBackend;
protected IDBConnection $db;
@@ -77,7 +77,7 @@ abstract class AbstractCalDavBackend extends TestCase {
$this->createMock(IConfig::class),
$this->createMock(IFactory::class)
])
- ->setMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
+ ->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
->getMock();
$this->principal->expects($this->any())->method('getPrincipalByPath')
->willReturn([
@@ -143,7 +143,7 @@ abstract class AbstractCalDavBackend extends TestCase {
}
}
- protected function createTestCalendar() {
+ protected function createTestCalendar(): int {
$this->dispatcher->expects(self::any())
->method('dispatchTyped');
@@ -160,9 +160,7 @@ abstract class AbstractCalDavBackend extends TestCase {
$this->assertEquals('#1C4587FF', $color);
$this->assertEquals('Example', $calendars[0]['uri']);
$this->assertEquals('Example', $calendars[0]['{DAV:}displayname']);
- $calendarId = $calendars[0]['id'];
-
- return $calendarId;
+ return (int)$calendars[0]['id'];
}
protected function createTestSubscription() {
diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
index 6ace633b072..ebe989ad815 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -19,21 +21,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
-
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IUserSession|MockObject */
- protected $userSession;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IUserManager|MockObject */
- protected $userManager;
+ protected IManager&MockObject $activityManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAppManager&MockObject $appManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -45,10 +37,9 @@ class BackendTest extends TestCase {
}
/**
- * @param array $methods
- * @return Backend|MockObject
+ * @return Backend|(Backend&MockObject)
*/
- protected function getBackend(array $methods = []) {
+ protected function getBackend(array $methods = []): Backend {
if (empty($methods)) {
return new Backend(
$this->activityManager,
@@ -71,7 +62,7 @@ class BackendTest extends TestCase {
}
}
- public function dataCallTriggerCalendarActivity() {
+ public static function dataCallTriggerCalendarActivity(): array {
return [
['onCalendarAdd', [['data']], Calendar::SUBJECT_ADD, [['data'], [], []]],
['onCalendarUpdate', [['data'], ['shares'], ['changed-properties']], Calendar::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]],
@@ -82,13 +73,8 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataCallTriggerCalendarActivity
- *
- * @param string $method
- * @param array $payload
- * @param string $expectedSubject
- * @param array $expectedPayload
*/
- public function testCallTriggerCalendarActivity($method, array $payload, $expectedSubject, array $expectedPayload): void {
+ public function testCallTriggerCalendarActivity(string $method, array $payload, string $expectedSubject, array $expectedPayload): void {
$backend = $this->getBackend(['triggerCalendarActivity']);
$backend->expects($this->once())
->method('triggerCalendarActivity')
@@ -101,7 +87,7 @@ class BackendTest extends TestCase {
call_user_func_array([$backend, $method], $payload);
}
- public function dataTriggerCalendarActivity() {
+ public static function dataTriggerCalendarActivity(): array {
return [
// Add calendar
[Calendar::SUBJECT_ADD, [], [], [], '', '', null, []],
@@ -184,16 +170,8 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerCalendarActivity
- * @param string $action
- * @param array $data
- * @param array $shares
- * @param array $changedProperties
- * @param string $currentUser
- * @param string $author
- * @param string[]|null $shareUsers
- * @param string[] $users
*/
- public function testTriggerCalendarActivity($action, array $data, array $shares, array $changedProperties, $currentUser, $author, $shareUsers, array $users): void {
+ public function testTriggerCalendarActivity(string $action, array $data, array $shares, array $changedProperties, string $currentUser, string $author, ?array $shareUsers, array $users): void {
$backend = $this->getBackend(['getUsersForShares']);
if ($shareUsers === null) {
@@ -278,7 +256,7 @@ class BackendTest extends TestCase {
], [], []]);
}
- public function dataGetUsersForShares() {
+ public static function dataGetUsersForShares(): array {
return [
[
[],
@@ -323,9 +301,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
*/
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -356,7 +331,7 @@ class BackendTest extends TestCase {
/**
* @param string[] $users
- * @return IUser[]|MockObject[]
+ * @return IUser[]&MockObject[]
*/
protected function getUsers(array $users) {
$list = [];
@@ -368,7 +343,7 @@ class BackendTest extends TestCase {
/**
* @param string $uid
- * @return IUser|MockObject
+ * @return IUser&MockObject
*/
protected function getUserMock($uid) {
$user = $this->createMock(IUser::class);
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
index a7c84260f21..a31907b4b0a 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,15 +11,12 @@ use OCA\DAV\CalDAV\Activity\Filter\Calendar;
use OCP\Activity\IFilter;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CalendarTest extends TestCase {
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $url;
-
- /** @var IFilter|\PHPUnit\Framework\MockObject\MockObject */
- protected $filter;
+ protected IURLGenerator&MockObject $url;
+ protected IFilter $filter;
protected function setUp(): void {
parent::setUp();
@@ -48,7 +47,7 @@ class CalendarTest extends TestCase {
$this->assertEquals('absolute-path-to-icon', $this->filter->getIcon());
}
- public function dataFilterTypes() {
+ public static function dataFilterTypes(): array {
return [
[[], []],
[['calendar', 'calendar_event'], ['calendar', 'calendar_event']],
@@ -62,7 +61,7 @@ class CalendarTest extends TestCase {
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ public function testFilterTypes(array $types, array $expected): void {
$this->assertEquals($expected, $this->filter->filterTypes($types));
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
index 392759206ed..468dd15f480 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,7 +17,7 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
- public function dataFilters() {
+ public static function dataFilters(): array {
return [
[Calendar::class],
[Todo::class],
@@ -24,18 +26,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testImplementsInterface($filterClass): void {
+ public function testImplementsInterface(string $filterClass): void {
$filter = Server::get($filterClass);
$this->assertInstanceOf(IFilter::class, $filter);
}
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIdentifier($filterClass): void {
+ public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
@@ -43,9 +43,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetName($filterClass): void {
+ public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
@@ -53,9 +52,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetPriority($filterClass): void {
+ public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@@ -66,9 +64,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIcon($filterClass): void {
+ public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
@@ -77,9 +74,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testFilterTypes($filterClass): void {
+ public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
@@ -87,9 +83,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testAllowedApps($filterClass): void {
+ public function testAllowedApps(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->allowedApps());
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
index 6aa47f33750..6ef7289e156 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,15 +11,12 @@ use OCA\DAV\CalDAV\Activity\Filter\Todo;
use OCP\Activity\IFilter;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class TodoTest extends TestCase {
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $url;
-
- /** @var IFilter|\PHPUnit\Framework\MockObject\MockObject */
- protected $filter;
+ protected IURLGenerator&MockObject $url;
+ protected IFilter $filter;
protected function setUp(): void {
parent::setUp();
@@ -48,7 +47,7 @@ class TodoTest extends TestCase {
$this->assertEquals('absolute-path-to-icon', $this->filter->getIcon());
}
- public function dataFilterTypes() {
+ public static function dataFilterTypes(): array {
return [
[[], []],
[['calendar_todo'], ['calendar_todo']],
@@ -62,7 +61,7 @@ class TodoTest extends TestCase {
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ public function testFilterTypes(array $types, array $expected): void {
$this->assertEquals($expected, $this->filter->filterTypes($types));
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
index ba97c888b0c..113af7ed240 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,6 @@ namespace OCA\DAV\Tests\unit\CalDAV\Activity\Provider;
use OCA\DAV\CalDAV\Activity\Provider\Base;
use OCP\Activity\IEvent;
-use OCP\Activity\IProvider;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IURLGenerator;
@@ -16,17 +17,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BaseTest extends TestCase {
- /** @var IUserManager|MockObject */
- protected $userManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IURLGenerator|MockObject */
- protected $url;
-
- /** @var IProvider|Base|MockObject */
- protected $provider;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IURLGenerator&MockObject $url;
+ protected Base&MockObject $provider;
protected function setUp(): void {
parent::setUp();
@@ -39,24 +33,21 @@ class BaseTest extends TestCase {
$this->groupManager,
$this->url,
])
- ->setMethods(['parse'])
+ ->onlyMethods(['parse'])
->getMock();
}
- public function dataSetSubjects() {
+ public static function dataSetSubjects(): array {
return [
- ['abc', [], 'abc'],
- ['{actor} created {calendar}', ['actor' => ['name' => 'abc'], 'calendar' => ['name' => 'xyz']], 'abc created xyz'],
+ ['abc', []],
+ ['{actor} created {calendar}', ['actor' => ['name' => 'abc'], 'calendar' => ['name' => 'xyz']]],
];
}
/**
* @dataProvider dataSetSubjects
- * @param string $subject
- * @param array $parameters
- * @param string $parsedSubject
*/
- public function testSetSubjects(string $subject, array $parameters, string $parsedSubject): void {
+ public function testSetSubjects(string $subject, array $parameters): void {
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('setRichSubject')
@@ -68,7 +59,7 @@ class BaseTest extends TestCase {
$this->invokePrivate($this->provider, 'setSubjects', [$event, $subject, $parameters]);
}
- public function dataGenerateCalendarParameter() {
+ public static function dataGenerateCalendarParameter(): array {
return [
[['id' => 23, 'uri' => 'foo', 'name' => 'bar'], 'bar'],
[['id' => 42, 'uri' => 'foo', 'name' => 'Personal'], 'Personal'],
@@ -79,8 +70,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateCalendarParameter
- * @param array $data
- * @param string $name
*/
public function testGenerateCalendarParameter(array $data, string $name): void {
$l = $this->createMock(IL10N::class);
@@ -97,7 +86,7 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateCalendarParameter', [$data, $l]));
}
- public function dataGenerateLegacyCalendarParameter() {
+ public static function dataGenerateLegacyCalendarParameter(): array {
return [
[23, 'c1'],
[42, 'c2'],
@@ -106,8 +95,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateLegacyCalendarParameter
- * @param int $id
- * @param string $name
*/
public function testGenerateLegacyCalendarParameter(int $id, string $name): void {
$this->assertEquals([
@@ -117,7 +104,7 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateLegacyCalendarParameter', [$id, $name]));
}
- public function dataGenerateGroupParameter() {
+ public static function dataGenerateGroupParameter(): array {
return [
['g1'],
['g2'],
@@ -126,7 +113,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateGroupParameter
- * @param string $gid
*/
public function testGenerateGroupParameter(string $gid): void {
$this->assertEquals([
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
index ec237825731..748360adf79 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,11 +8,9 @@
namespace OCA\DAV\Tests\unit\CalDAV\Activity\Provider;
use InvalidArgumentException;
-use OCA\DAV\CalDAV\Activity\Provider\Base;
use OCA\DAV\CalDAV\Activity\Provider\Event;
use OCP\Activity\IEventMerger;
use OCP\Activity\IManager;
-use OCP\Activity\IProvider;
use OCP\App\IAppManager;
use OCP\IGroupManager;
use OCP\IURLGenerator;
@@ -21,30 +21,14 @@ use Test\TestCase;
use TypeError;
class EventTest extends TestCase {
-
- /** @var IUserManager|MockObject */
- protected $userManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IURLGenerator|MockObject */
- protected $url;
-
- /** @var IProvider|Base|MockObject */
- protected $provider;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IFactory|MockObject */
- protected $i10nFactory;
-
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IEventMerger|MockObject */
- protected $eventMerger;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IURLGenerator&MockObject $url;
+ protected IAppManager&MockObject $appManager;
+ protected IFactory&MockObject $i10nFactory;
+ protected IManager&MockObject $activityManager;
+ protected IEventMerger&MockObject $eventMerger;
+ protected Event&MockObject $provider;
protected function setUp(): void {
parent::setUp();
@@ -65,11 +49,11 @@ class EventTest extends TestCase {
$this->eventMerger,
$this->appManager
])
- ->setMethods(['parse'])
+ ->onlyMethods(['parse'])
->getMock();
}
- public function dataGenerateObjectParameter() {
+ public static function dataGenerateObjectParameter(): array {
$link = [
'object_uri' => 'someuuid.ics',
'calendar_uri' => 'personal',
@@ -85,10 +69,6 @@ class EventTest extends TestCase {
/**
* @dataProvider dataGenerateObjectParameter
- * @param int $id
- * @param string $name
- * @param array|null $link
- * @param bool $calendarAppEnabled
*/
public function testGenerateObjectParameter(int $id, string $name, ?array $link, bool $calendarAppEnabled = true): void {
$affectedUser = 'otheruser';
@@ -174,7 +154,9 @@ class EventTest extends TestCase {
];
}
- /** @dataProvider generateObjectParameterLinkEncodingDataProvider */
+ /**
+ * @dataProvider generateObjectParameterLinkEncodingDataProvider
+ */
public function testGenerateObjectParameterLinkEncoding(array $link, string $objectId): void {
$generatedLink = [
'view' => 'dayGridMonth',
@@ -203,7 +185,7 @@ class EventTest extends TestCase {
$this->assertEquals($result, $this->invokePrivate($this->provider, 'generateObjectParameter', [$objectParameter, 'sharee']));
}
- public function dataGenerateObjectParameterThrows() {
+ public static function dataGenerateObjectParameterThrows(): array {
return [
['event', TypeError::class],
[['name' => 'event']],
@@ -213,10 +195,8 @@ class EventTest extends TestCase {
/**
* @dataProvider dataGenerateObjectParameterThrows
- * @param mixed $eventData
- * @param string $exception
*/
- public function testGenerateObjectParameterThrows($eventData, string $exception = InvalidArgumentException::class): void {
+ public function testGenerateObjectParameterThrows(string|array $eventData, string $exception = InvalidArgumentException::class): void {
$this->expectException($exception);
$this->invokePrivate($this->provider, 'generateObjectParameter', [$eventData, 'no_user']);
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
index 42b565b9d8b..2ed3bab02e6 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -13,7 +15,7 @@ use OCP\Server;
use Test\TestCase;
class GenericTest extends TestCase {
- public function dataSettings() {
+ public static function dataSettings(): array {
return [
[Calendar::class],
[Event::class],
@@ -23,18 +25,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testImplementsInterface($settingClass): void {
+ public function testImplementsInterface(string $settingClass): void {
$setting = Server::get($settingClass);
$this->assertInstanceOf(ISetting::class, $setting);
}
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetIdentifier($settingClass): void {
+ public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
@@ -42,9 +42,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetName($settingClass): void {
+ public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
@@ -52,9 +51,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetPriority($settingClass): void {
+ public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@@ -65,9 +63,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeStream($settingClass): void {
+ public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
@@ -75,9 +72,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledStream($settingClass): void {
+ public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
@@ -85,9 +81,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeMail($settingClass): void {
+ public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
@@ -95,9 +90,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledMail($settingClass): void {
+ public function testIsDefaultEnabledMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledMail());
diff --git a/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php b/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
index f7fa114ff28..bac2094f734 100644
--- a/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,13 +17,13 @@ use Test\TestCase;
use function rewind;
class AppCalendarTest extends TestCase {
- private $principal = 'principals/users/foo';
+ private string $principal = 'principals/users/foo';
private AppCalendar $appCalendar;
private AppCalendar $writeableAppCalendar;
- private ICalendar|MockObject $calendar;
- private ICalendar|MockObject $writeableCalendar;
+ private ICalendar&MockObject $calendar;
+ private ICalendar&MockObject $writeableCalendar;
protected function setUp(): void {
parent::setUp();
@@ -53,9 +54,17 @@ class AppCalendarTest extends TestCase {
}
public function testCreateFile(): void {
+ $calls = [
+ ['some-name', 'data'],
+ ['other-name', ''],
+ ['name', 'some data'],
+ ];
$this->writeableCalendar->expects($this->exactly(3))
->method('createFromString')
- ->withConsecutive(['some-name', 'data'], ['other-name', ''], ['name', 'some data']);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// pass data
$this->assertNull($this->writeableAppCalendar->createFile('some-name', 'data'));
diff --git a/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php b/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
index a913c2dde6f..3d72d5c97b8 100644
--- a/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
+++ b/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -17,9 +18,9 @@ use Test\TestCase;
class CalendarObjectTest extends TestCase {
private CalendarObject $calendarObject;
- private AppCalendar|MockObject $calendar;
- private ICalendar|MockObject $backend;
- private VCalendar|MockObject $vobject;
+ private AppCalendar&MockObject $calendar;
+ private ICalendar&MockObject $backend;
+ private VCalendar&MockObject $vobject;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
index e60efc6fb19..a5811271ce2 100644
--- a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -11,24 +13,15 @@ use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\CalendarHome;
use OCP\IConfig;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EnablePluginTest extends TestCase {
-
- /** @var \Sabre\DAV\Server|\PHPUnit\Framework\MockObject\MockObject */
- protected $server;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var BirthdayService |\PHPUnit\Framework\MockObject\MockObject */
- protected $birthdayService;
-
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
-
- /** @var EnablePlugin $plugin */
- protected $plugin;
+ protected \Sabre\DAV\Server&MockObject $server;
+ protected IConfig&MockObject $config;
+ protected BirthdayService&MockObject $birthdayService;
+ protected IUser&MockObject $user;
+ protected EnablePlugin $plugin;
protected $request;
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
index 2378a75a7d5..935d8314f29 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
@@ -12,13 +12,14 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\CachedSubscription;
use OCA\DAV\CalDAV\CachedSubscriptionImpl;
use OCA\DAV\CalDAV\CalDavBackend;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CachedSubscriptionImplTest extends TestCase {
- private CachedSubscription $cachedSubscription;
+ private CachedSubscription&MockObject $cachedSubscription;
private array $cachedSubscriptionInfo;
+ private CalDavBackend&MockObject $backend;
private CachedSubscriptionImpl $cachedSubscriptionImpl;
- private CalDavBackend $backend;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
index 56e4930d3b3..03a2c9f20ee 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -32,7 +34,7 @@ class CachedSubscriptionObjectTest extends \Test\TestCase {
$this->assertEquals('BEGIN...', $calendarObject->get());
}
-
+
public function testPut(): void {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('Creating objects in a cached subscription is not allowed');
@@ -52,7 +54,7 @@ class CachedSubscriptionObjectTest extends \Test\TestCase {
$calendarObject->put('');
}
-
+
public function testDelete(): void {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('Deleting objects in a cached subscription is not allowed');
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
index be47b2bf640..58d5ca7835c 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
@@ -12,11 +12,12 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\CachedSubscriptionImpl;
use OCA\DAV\CalDAV\CachedSubscriptionProvider;
use OCA\DAV\CalDAV\CalDavBackend;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CachedSubscriptionProviderTest extends TestCase {
- private CalDavBackend $backend;
+ private CalDavBackend&MockObject $backend;
private CachedSubscriptionProvider $provider;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
index e1d22bc3e7b..091ee7a341f 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
@@ -140,19 +140,21 @@ class CachedSubscriptionTest extends \Test\TestCase {
'uri' => 'cal',
];
+ $calls = [
+ [666, 'foo1', 1, [
+ 'id' => 99,
+ 'uri' => 'foo1'
+ ]],
+ [666, 'foo2', 1, null],
+ ];
$backend->expects($this->exactly(2))
->method('getCalendarObject')
- ->withConsecutive(
- [666, 'foo1', 1],
- [666, 'foo2', 1],
- )
- ->willReturnOnConsecutiveCalls(
- [
- 'id' => 99,
- 'uri' => 'foo1'
- ],
- null
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$calendar = new CachedSubscription($backend, $calendarInfo);
@@ -250,19 +252,21 @@ class CachedSubscriptionTest extends \Test\TestCase {
'uri' => 'cal',
];
+ $calls = [
+ [666, 'foo1', 1, [
+ 'id' => 99,
+ 'uri' => 'foo1'
+ ]],
+ [666, 'foo2', 1, null],
+ ];
$backend->expects($this->exactly(2))
->method('getCalendarObject')
- ->withConsecutive(
- [666, 'foo1', 1],
- [666, 'foo2', 1],
- )
- ->willReturnOnConsecutiveCalls(
- [
- 'id' => 99,
- 'uri' => 'foo1'
- ],
- null
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$calendar = new CachedSubscription($backend, $calendarInfo);
diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
index 825d798e7e1..f8368660626 100644
--- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,8 +30,6 @@ use function time;
* Class CalDavBackendTest
*
* @group DB
- *
- * @package OCA\DAV\Tests\unit\CalDAV
*/
class CalDavBackendTest extends AbstractCalDavBackend {
public function testCalendarOperations(): void {
@@ -59,7 +59,7 @@ class CalDavBackendTest extends AbstractCalDavBackend {
self::assertEmpty($calendars);
}
- public function providesSharingData() {
+ public static function providesSharingData(): array {
return [
[true, true, true, false, [
[
@@ -458,7 +458,7 @@ EOD;
$this->assertNotNull($co);
}
- public function providesCalendarQueryParameters() {
+ public static function providesCalendarQueryParameters(): array {
return [
'all' => [[0, 1, 2, 3], [], []],
'only-todos' => [[], ['name' => 'VTODO'], []],
@@ -619,7 +619,7 @@ EOD;
$this->assertCount(0, $subscriptions);
}
- public function providesSchedulingData() {
+ public static function providesSchedulingData(): array {
$data = <<<EOS
BEGIN:VCALENDAR
VERSION:2.0
@@ -725,7 +725,7 @@ EOS;
}
}
- public function providesCalDataForGetDenormalizedData(): array {
+ public static function providesCalDataForGetDenormalizedData(): array {
return [
'first occurrence before unix epoch starts' => [0, 'firstOccurence', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:413F269B-B51B-46B1-AFB6-40055C53A4DC\r\nDTSTAMP:20160309T095056Z\r\nDTSTART;VALUE=DATE:16040222\r\nDTEND;VALUE=DATE:16040223\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:SUMMARY\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"],
'no first occurrence because yearly' => [null, 'firstOccurence', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:413F269B-B51B-46B1-AFB6-40055C53A4DC\r\nDTSTAMP:20160309T095056Z\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:SUMMARY\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"],
@@ -980,7 +980,7 @@ EOD;
$this->assertCount($count, $result);
}
- public function searchDataProvider() {
+ public static function searchDataProvider(): array {
return [
[false, [], 4],
[true, ['timerange' => ['start' => new DateTime('2013-09-12 13:00:00'), 'end' => new DateTime('2013-09-12 14:00:00')]], 2],
diff --git a/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php b/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
index 9956c17fff3..e25cc099bd6 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,21 +24,11 @@ use Sabre\DAV\MkCol;
use Test\TestCase;
class CalendarHomeTest extends TestCase {
-
- /** @var CalDavBackend | MockObject */
- private $backend;
-
- /** @var array */
- private $principalInfo = [];
-
- /** @var PluginManager */
- private $pluginManager;
-
- /** @var CalendarHome */
- private $calendarHome;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $backend;
+ private array $principalInfo = [];
+ private PluginManager&MockObject $pluginManager;
+ private LoggerInterface&MockObject $logger;
+ private CalendarHome $calendarHome;
protected function setUp(): void {
parent::setUp();
@@ -62,7 +54,7 @@ class CalendarHomeTest extends TestCase {
}
public function testCreateCalendarValidName(): void {
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$mkCol->method('getResourceType')
@@ -82,7 +74,7 @@ class CalendarHomeTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('The resource you tried to create has a reserved name');
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$this->calendarHome->createExtendedCollection('contact_birthdays', $mkCol);
@@ -92,7 +84,7 @@ class CalendarHomeTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('The resource you tried to create has a reserved name');
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$this->calendarHome->createExtendedCollection('app-generated--example--foo-1', $mkCol);
diff --git a/apps/dav/tests/unit/CalDAV/CalendarImplTest.php b/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
index 0d5223739f3..88b04326cc9 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -21,11 +23,10 @@ use Sabre\VObject\ITip\Message;
use Sabre\VObject\Reader;
class CalendarImplTest extends \Test\TestCase {
-
- private Calendar|MockObject $calendar;
+ private Calendar&MockObject $calendar;
private array $calendarInfo;
- private CalDavBackend|MockObject $backend;
- private CalendarImpl|MockObject $calendarImpl;
+ private CalDavBackend&MockObject $backend;
+ private CalendarImpl $calendarImpl;
private array $mockExportCollection;
protected function setUp(): void {
@@ -299,7 +300,7 @@ EOF;
foreach ($this->calendarImpl->export(null) as $entry) {
$exported[] = $entry;
}
-
+
// Assert
$this->assertCount(1, $exported, 'Invalid exported items count');
}
diff --git a/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php b/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
index 63d92dff40d..e8159ffe07c 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,20 +18,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class CalendarManagerTest extends \Test\TestCase {
- /** @var CalDavBackend | MockObject */
- private $backend;
-
- /** @var IL10N | MockObject */
- private $l10n;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var CalendarManager */
- private $manager;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $backend;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private CalendarManager $manager;
protected function setUp(): void {
parent::setUp();
@@ -54,7 +47,7 @@ class CalendarManagerTest extends \Test\TestCase {
['id' => 456, 'uri' => 'blablub2'],
]);
- /** @var IManager | MockObject $calendarManager */
+ /** @var IManager&MockObject $calendarManager */
$calendarManager = $this->createMock(Manager::class);
$registeredIds = [];
$calendarManager->expects($this->exactly(2))
diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php
index 7f2d0052162..0eff72c5c3d 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,20 +20,13 @@ use Sabre\VObject\Reader;
use Test\TestCase;
class CalendarTest extends TestCase {
-
- /** @var IL10N */
- protected $l10n;
-
- /** @var IConfig */
- protected $config;
-
- /** @var MockObject|LoggerInterface */
- protected $logger;
+ protected IL10N&MockObject $l10n;
+ protected IConfig&MockObject $config;
+ protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->config = $this->createMock(IConfig::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->l10n
@@ -80,7 +75,7 @@ class CalendarTest extends TestCase {
}
public function testDeleteOwn(): void {
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->never())->method('updateShares');
$backend->expects($this->never())->method('getShares');
@@ -101,7 +96,7 @@ class CalendarTest extends TestCase {
}
public function testDeleteBirthdayCalendar(): void {
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->once())->method('deleteCalendar')
->with(666);
@@ -122,7 +117,7 @@ class CalendarTest extends TestCase {
$c->delete();
}
- public function dataPropPatch() {
+ public static function dataPropPatch(): array {
return [
['user1', 'user2', [], true],
['user1', 'user2', [
@@ -152,9 +147,9 @@ class CalendarTest extends TestCase {
/**
* @dataProvider dataPropPatch
*/
- public function testPropPatch($ownerPrincipal, $principalUri, $mutations, $shared): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ public function testPropPatch(string $ownerPrincipal, string $principalUri, array $mutations, bool $shared): void {
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$calendarInfo = [
'{http://owncloud.org/ns}owner-principal' => $ownerPrincipal,
'principaluri' => $principalUri,
@@ -177,8 +172,8 @@ class CalendarTest extends TestCase {
* @dataProvider providesReadOnlyInfo
*/
public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet, $uri = 'default'): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1);
$calendarInfo = [
'principaluri' => 'user2',
@@ -263,7 +258,7 @@ class CalendarTest extends TestCase {
$this->assertEquals($expectedAcl, $childAcl);
}
- public function providesReadOnlyInfo() {
+ public static function providesReadOnlyInfo(): array {
return [
'read-only property not set' => [true, null, true],
'read-only property is false' => [true, false, true],
@@ -277,16 +272,14 @@ class CalendarTest extends TestCase {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ public function testPrivateClassification(int $expectedChildren, bool $isShared): void {
$calObject0 = ['uri' => 'event-0', 'classification' => CalDavBackend::CLASSIFICATION_PUBLIC];
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
]);
@@ -319,10 +312,8 @@ class CalendarTest extends TestCase {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -372,8 +363,8 @@ EOD;
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL, 'calendardata' => $calData];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
]);
@@ -437,7 +428,7 @@ EOD;
}
}
- public function providesConfidentialClassificationData() {
+ public static function providesConfidentialClassificationData(): array {
return [
[3, false],
[2, true]
@@ -540,7 +531,7 @@ EOD;
'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL,
'calendardata' => $confidentialObjectData];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())
->method('getCalendarObjects')
@@ -619,7 +610,7 @@ EOD;
$this->fixLinebreak($confidentialObjectCleaned));
}
- private function fixLinebreak($str) {
+ private function fixLinebreak(string $str): string {
return preg_replace('~(*BSR_ANYCRLF)\R~', "\r\n", $str);
}
}
diff --git a/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php b/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
index 43a7180647f..90b6f9ec0db 100644
--- a/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
@@ -14,8 +14,7 @@ use Sabre\VObject\Component\VCalendar;
use Test\TestCase;
class EventComparisonServiceTest extends TestCase {
- /** @var EventComparisonService */
- private $eventComparisonService;
+ private EventComparisonService $eventComparisonService;
protected function setUp(): void {
$this->eventComparisonService = new EventComparisonService();
diff --git a/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
index f1e049c4a80..838dfc18f2f 100644
--- a/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,10 +16,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
class ExportServiceTest extends \Test\TestCase {
-
- private ServerVersion|MockObject $serverVersion;
+ private ServerVersion&MockObject $serverVersion;
private ExportService $service;
- private ICalendarExport|MockObject $calendar;
+ private ICalendarExport&MockObject $calendar;
private array $mockExportCollection;
protected function setUp(): void {
@@ -36,7 +37,7 @@ class ExportServiceTest extends \Test\TestCase {
yield $entry;
}
}
-
+
public function testExport(): void {
// Arrange
// construct calendar with a 1 hour event and same start/end time zones
diff --git a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
index 778df5697f0..67b2ff3555a 100644
--- a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,10 +8,11 @@
namespace OCA\DAV\Tests\unit\CalDAV\Integration;
use OCA\DAV\CalDAV\Integration\ExternalCalendar;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ExternalCalendarTest extends TestCase {
- private $abstractExternalCalendar;
+ private ExternalCalendar&MockObject $abstractExternalCalendar;
protected function setUp(): void {
parent::setUp();
@@ -39,7 +42,7 @@ class ExternalCalendarTest extends TestCase {
$this->abstractExternalCalendar->setName('other-name');
}
- public function createDirectory():void {
+ public function createDirectory(): void {
// Check that the method is final and can't be overridden by other classes
$reflectionMethod = new \ReflectionMethod(ExternalCalendar::class, 'createDirectory');
$this->assertTrue($reflectionMethod->isFinal());
@@ -73,7 +76,7 @@ class ExternalCalendarTest extends TestCase {
ExternalCalendar::splitAppGeneratedCalendarUri($name);
}
- public function splitAppGeneratedCalendarUriDataProvider():array {
+ public static function splitAppGeneratedCalendarUriDataProvider():array {
return [
['personal'],
['foo_shared_by_admin'],
diff --git a/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
index b55359cd208..3ba0b832593 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,20 +17,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarPublicationListenerTest extends TestCase {
-
- /** @var Backend|MockObject */
- private $activityBackend;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private Backend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private CalendarPublicationListener $calendarPublicationListener;
-
- /** @var CalendarPublishedEvent|MockObject */
- private $publicationEvent;
-
- /** @var CalendarUnpublishedEvent|MockObject */
- private $unpublicationEvent;
+ private CalendarPublishedEvent&MockObject $publicationEvent;
+ private CalendarUnpublishedEvent&MockObject $unpublicationEvent;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
index b8414ecd695..d5697a862db 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,17 +16,10 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarShareUpdateListenerTest extends TestCase {
-
- /** @var Backend|MockObject */
- private $activityBackend;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private Backend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private CalendarShareUpdateListener $calendarPublicationListener;
-
- /** @var CalendarShareUpdatedEvent|MockObject */
- private $event;
+ private CalendarShareUpdatedEvent&MockObject $event;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
index 589e659b9ea..cbfdfd6b9b7 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,26 +20,13 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class SubscriptionListenerTest extends TestCase {
-
- /** @var RefreshWebcalService|MockObject */
- private $refreshWebcalService;
-
- /** @var Backend|MockObject */
- private $reminderBackend;
-
- /** @var IJobList|MockObject */
- private $jobList;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private RefreshWebcalService&MockObject $refreshWebcalService;
+ private Backend&MockObject $reminderBackend;
+ private IJobList&MockObject $jobList;
+ private LoggerInterface&MockObject $logger;
private SubscriptionListener $calendarPublicationListener;
-
- /** @var SubscriptionCreatedEvent|MockObject */
- private $subscriptionCreatedEvent;
-
- /** @var SubscriptionDeletedEvent|MockObject */
- private $subscriptionDeletedEvent;
+ private SubscriptionCreatedEvent&MockObject $subscriptionCreatedEvent;
+ private SubscriptionDeletedEvent&MockObject $subscriptionDeletedEvent;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/OutboxTest.php b/apps/dav/tests/unit/CalDAV/OutboxTest.php
index def2bd80157..cc0a3f0405f 100644
--- a/apps/dav/tests/unit/CalDAV/OutboxTest.php
+++ b/apps/dav/tests/unit/CalDAV/OutboxTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,15 +9,12 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\Outbox;
use OCP\IConfig;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class OutboxTest extends TestCase {
-
- /** @var IConfig */
- private $config;
-
- /** @var Outbox */
- private $outbox;
+ private IConfig&MockObject $config;
+ private Outbox $outbox;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/PluginTest.php b/apps/dav/tests/unit/CalDAV/PluginTest.php
index 0915fdf2646..647e4b0da81 100644
--- a/apps/dav/tests/unit/CalDAV/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/PluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,8 +11,7 @@ use OCA\DAV\CalDAV\Plugin;
use Test\TestCase;
class PluginTest extends TestCase {
- /** @var Plugin */
- private $plugin;
+ private Plugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -18,7 +19,7 @@ class PluginTest extends TestCase {
$this->plugin = new Plugin();
}
- public function linkProvider() {
+ public static function linkProvider(): array {
return [
[
'principals/users/MyUserName',
@@ -37,11 +38,8 @@ class PluginTest extends TestCase {
/**
* @dataProvider linkProvider
- *
- * @param $input
- * @param $expected
*/
- public function testGetCalendarHomeForPrincipal($input, $expected): void {
+ public function testGetCalendarHomeForPrincipal(string $input, string $expected): void {
$this->assertSame($expected, $this->plugin->getCalendarHomeForPrincipal($input));
}
diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
index 075681eff7f..6acceed6f64 100644
--- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
+++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,6 +20,7 @@ use OCP\IL10N;
use OCP\IUserManager;
use OCP\Security\ISecureRandom;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@@ -30,25 +33,15 @@ use Test\TestCase;
*/
class PublicCalendarRootTest extends TestCase {
public const UNIT_TEST_USER = '';
- /** @var CalDavBackend */
- private $backend;
- /** @var PublicCalendarRoot */
- private $publicCalendarRoot;
- /** @var IL10N */
- private $l10n;
- /** @var Principal|\PHPUnit\Framework\MockObject\MockObject */
- private $principal;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
- /** @var IConfig */
- protected $config;
-
- /** @var ISecureRandom */
- private $random;
- /** @var LoggerInterface */
- private $logger;
+ private CalDavBackend $backend;
+ private PublicCalendarRoot $publicCalendarRoot;
+ private IL10N&MockObject $l10n;
+ private Principal&MockObject $principal;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IConfig&MockObject $config;
+ private ISecureRandom $random;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -82,8 +75,7 @@ class PublicCalendarRootTest extends TestCase {
$sharingBackend,
false,
);
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->config = $this->createMock(IConfig::class);
$this->publicCalendarRoot = new PublicCalendarRoot($this->backend,
@@ -134,10 +126,7 @@ class PublicCalendarRootTest extends TestCase {
$this->assertSame([], $calendarResults);
}
- /**
- * @return Calendar
- */
- protected function createPublicCalendar() {
+ protected function createPublicCalendar(): Calendar {
$this->backend->createCalendar(self::UNIT_TEST_USER, 'Example', []);
$calendarInfo = $this->backend->getCalendarsForUser(self::UNIT_TEST_USER)[0];
diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
index 0609892c279..7e8f714ef42 100644
--- a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,15 +18,13 @@ class PublicCalendarTest extends CalendarTest {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ public function testPrivateClassification(int $expectedChildren, bool $isShared): void {
$calObject0 = ['uri' => 'event-0', 'classification' => CalDavBackend::CLASSIFICATION_PUBLIC];
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
@@ -44,9 +44,9 @@ class PublicCalendarTest extends CalendarTest {
'id' => 666,
'uri' => 'cal',
];
- /** @var MockObject | IConfig $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
- /** @var MockObject | LoggerInterface $logger */
+ /** @var LoggerInterface&MockObject $logger */
$logger = $this->createMock(LoggerInterface::class);
$c = new PublicCalendar($backend, $calendarInfo, $this->l10n, $config, $logger);
$children = $c->getChildren();
@@ -59,10 +59,8 @@ class PublicCalendarTest extends CalendarTest {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -112,7 +110,7 @@ EOD;
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL, 'calendardata' => $calData];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
@@ -132,9 +130,9 @@ EOD;
'id' => 666,
'uri' => 'cal',
];
- /** @var MockObject | IConfig $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
- /** @var MockObject | LoggerInterface $logger */
+ /** @var LoggerInterface&MockObject $logger */
$logger = $this->createMock(LoggerInterface::class);
$c = new PublicCalendar($backend, $calendarInfo, $this->l10n, $config, $logger);
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
index 769e1537646..5344ec5d7cd 100644
--- a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
+++ b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -43,9 +45,9 @@ class PublisherTest extends TestCase {
}
- protected $elementMap = [];
- protected $namespaceMap = ['DAV:' => 'd'];
- protected $contextUri = '/';
+ protected array $elementMap = [];
+ protected array $namespaceMap = ['DAV:' => 'd'];
+ protected string $contextUri = '/';
private function write($input) {
$writer = new Writer();
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
index 8aecdf7f0dd..c66a3639040 100644
--- a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
+++ b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,6 +12,7 @@ use OCA\DAV\CalDAV\Publishing\PublishPlugin;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -17,31 +20,21 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PublishingTest extends TestCase {
-
- /** @var PublishPlugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var Calendar | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
+ private PublishPlugin $plugin;
+ private Server $server;
+ private Calendar&MockObject $book;
+ private IConfig&MockObject $config;
+ private IURLGenerator&MockObject $urlGenerator;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->config = $this->createMock(IConfig::class);
$this->config->expects($this->any())->method('getSystemValue')
->with($this->equalTo('secret'))
->willReturn('mysecret');
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
/** @var IRequest $request */
$this->plugin = new PublishPlugin($this->config, $this->urlGenerator);
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
index e1a0485f8a9..356acf2dd7f 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
@@ -10,27 +10,20 @@ namespace OCA\DAV\Tests\unit\CalDAV\Reminder;
use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
use OCP\AppFramework\Utility\ITimeFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
-
- /**
- * Reminder Backend
- *
- * @var ReminderBackend|\PHPUnit\Framework\MockObject\MockObject
- */
- private $reminderBackend;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
+ private ReminderBackend $reminderBackend;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_reminders')->execute();
- $query->delete('calendarobjects')->execute();
- $query->delete('calendars')->execute();
+ $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);
@@ -40,9 +33,11 @@ class BackendTest extends TestCase {
protected function tearDown(): void {
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_reminders')->execute();
- $query->delete('calendarobjects')->execute();
- $query->delete('calendars')->execute();
+ $query->delete('calendar_reminders')->executeStatement();
+ $query->delete('calendarobjects')->executeStatement();
+ $query->delete('calendars')->executeStatement();
+
+ parent::tearDown();
}
@@ -235,7 +230,7 @@ class BackendTest extends TestCase {
$query = self::$realDatabase->getQueryBuilder();
$rows = $query->select('*')
->from('calendar_reminders')
- ->execute()
+ ->executeQuery()
->fetchAll();
$this->assertCount(4, $rows);
@@ -251,7 +246,7 @@ class BackendTest extends TestCase {
$row = $query->select('notification_date')
->from('calendar_reminders')
->where($query->expr()->eq('id', $query->createNamedParameter($reminderId)))
- ->execute()
+ ->executeQuery()
->fetch();
$this->assertEquals((int)$row['notification_date'], 123700);
@@ -266,7 +261,7 @@ class BackendTest extends TestCase {
'principaluri' => $query->createNamedParameter('principals/users/user001'),
'displayname' => $query->createNamedParameter('Displayname 123'),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendars')
@@ -275,7 +270,7 @@ class BackendTest extends TestCase {
'principaluri' => $query->createNamedParameter('principals/users/user002'),
'displayname' => $query->createNamedParameter('Displayname 99'),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -285,7 +280,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(1),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -295,7 +290,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(1),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -305,7 +300,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(99),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -323,7 +318,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123456),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -341,7 +336,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123456),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -359,7 +354,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123499),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -377,6 +372,6 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123600),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php
index 60ef1df43d5..70b374298ea 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php
@@ -14,44 +14,21 @@ use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\L10N\IFactory as L10NFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\VObject\Component\VCalendar;
use Test\TestCase;
-abstract class AbstractNotificationProviderTest extends TestCase {
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var L10NFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var AbstractProvider|\PHPUnit\Framework\MockObject\MockObject */
- protected $provider;
-
- /**
- * @var VCalendar
- */
- protected $vcalendar;
-
- /**
- * @var string
- */
- protected $calendarDisplayName;
-
- /**
- * @var IUser|\PHPUnit\Framework\MockObject\MockObject
- */
- protected $user;
+abstract class AbstractNotificationProviderTestCase extends TestCase {
+ protected LoggerInterface&MockObject $logger;
+ protected L10NFactory&MockObject $l10nFactory;
+ protected IL10N&MockObject $l10n;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IConfig&MockObject $config;
+ protected AbstractProvider $provider;
+ protected VCalendar $vcalendar;
+ protected string $calendarDisplayName;
+ protected IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
index 42eb0b0faa3..f7fbac2c407 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
@@ -18,11 +18,9 @@ use OCP\Util;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
-class EmailProviderTest extends AbstractNotificationProviderTest {
+class EmailProviderTest extends AbstractNotificationProviderTestCase {
public const USER_EMAIL = 'frodo@hobb.it';
-
- /** @var IMailer|MockObject */
- private $mailer;
+ private IMailer&MockObject $mailer;
protected function setUp(): void {
parent::setUp();
@@ -97,18 +95,12 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$this->mailer->expects($this->exactly(4))
->method('validateMailAddress')
- ->withConsecutive(
- ['uid1@example.com'],
- ['uid2@example.com'],
- ['uid3@example.com'],
- ['invalid'],
- )
- ->willReturnOnConsecutiveCalls(
- true,
- true,
- true,
- false,
- );
+ ->willReturnMap([
+ ['uid1@example.com', true],
+ ['uid2@example.com', true],
+ ['uid3@example.com', true],
+ ['invalid', false],
+ ]);
$this->mailer->expects($this->exactly(3))
->method('createMessage')
@@ -119,14 +111,18 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message22
);
- $this->mailer->expects($this->exactly(3))
+ $calls = [
+ [$message11],
+ [$message21],
+ [$message22],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message11],
- [$message21],
- [$message22],
- )
- ->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(2);
@@ -215,16 +211,22 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message22,
$message23,
);
- $this->mailer->expects($this->exactly(6))
+
+ $calls = [
+ [$message11],
+ [$message12],
+ [$message13],
+ [$message21],
+ [$message22],
+ [$message23],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message11],
- [$message12],
- [$message13],
- [$message21],
- [$message22],
- [$message23],
- )->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(2);
$vcalendar = $this->getAttendeeVCalendar();
@@ -293,12 +295,18 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message12,
$message13,
);
- $this->mailer->expects($this->exactly(2))
+
+ $calls = [
+ [$message12],
+ [$message13],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message12],
- [$message13],
- )->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(1);
$vcalendar = $this->getAttendeeVCalendar();
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
index b090fa0e5e7..c601463363b 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
@@ -13,13 +13,11 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IUser;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use PHPUnit\Framework\MockObject\MockObject;
-class PushProviderTest extends AbstractNotificationProviderTest {
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $manager;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
+class PushProviderTest extends AbstractNotificationProviderTestCase {
+ private IManager&MockObject $manager;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
@@ -96,20 +94,23 @@ class PushProviderTest extends AbstractNotificationProviderTest {
$this->manager->expects($this->exactly(3))
->method('createNotification')
- ->with()
->willReturnOnConsecutiveCalls(
$notification1,
$notification2,
$notification3
);
+ $calls = [
+ $notification1,
+ $notification2,
+ $notification3,
+ ];
$this->manager->expects($this->exactly(3))
->method('notify')
- ->withConsecutive(
- [$notification1],
- [$notification2],
- [$notification3],
- );
+ ->willReturnCallback(function ($notification) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, $notification);
+ });
$this->provider->send($this->vcalendar->VEVENT, $this->calendarDisplayName, [], $users);
}
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
index 6d0e62f505b..6b813ed0228 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
@@ -21,9 +21,7 @@ use Test\TestCase;
* @group DB
*/
class NotificationProviderManagerTest extends TestCase {
-
- /** @var NotificationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $providerManager;
+ private NotificationProviderManager $providerManager;
/**
* @throws QueryException
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
index dcf11a1a6b8..147446152d8 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
@@ -21,20 +21,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
- /** @var Notifier */
- protected $notifier;
-
- /** @var IFactory|MockObject */
- protected $factory;
-
- /** @var IURLGenerator|MockObject */
- protected $urlGenerator;
-
- /** @var IL10N|MockObject */
- protected $l10n;
-
- /** @var ITimeFactory|MockObject */
- protected $timeFactory;
+ protected IFactory&MockObject $factory;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IL10N&MockObject $l10n;
+ protected ITimeFactory&MockObject $timeFactory;
+ protected Notifier $notifier;
protected function setUp(): void {
parent::setUp();
@@ -92,7 +83,7 @@ class NotifierTest extends TestCase {
$this->expectException(UnknownNotificationException::class);
$this->expectExceptionMessage('Notification not from this app');
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -109,7 +100,7 @@ class NotifierTest extends TestCase {
$this->expectException(UnknownNotificationException::class);
$this->expectExceptionMessage('Unknown subject');
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -130,7 +121,7 @@ class NotifierTest extends TestCase {
return $d1->diff($d2)->y < 0;
}
- public function dataPrepare(): array {
+ public static function dataPrepare(): array {
return [
[
'calendar_reminder',
@@ -181,16 +172,9 @@ class NotifierTest extends TestCase {
/**
* @dataProvider dataPrepare
- *
- * @param string $subjectType
- * @param array $subjectParams
- * @param string $subject
- * @param array $messageParams
- * @param string $message
- * @throws \Exception
*/
public function testPrepare(string $subjectType, array $subjectParams, string $subject, array $messageParams, string $message): void {
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -235,7 +219,7 @@ class NotifierTest extends TestCase {
}
public function testPassedEvent(): void {
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php b/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
index 198c8d97b12..4b6735ee297 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
@@ -26,35 +26,16 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ReminderServiceTest extends TestCase {
- /** @var Backend|MockObject */
- private $backend;
-
- /** @var NotificationProviderManager|MockObject */
- private $notificationProviderManager;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var IGroupManager|MockObject */
- private $groupManager;
-
- /** @var CalDavBackend|MockObject */
- private $caldavBackend;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var ReminderService */
- private $reminderService;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
-
- /** @var MockObject|Principal */
- private $principalConnector;
+ private Backend&MockObject $backend;
+ private NotificationProviderManager&MockObject $notificationProviderManager;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private CalDavBackend&MockObject $caldavBackend;
+ private ITimeFactory&MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private Principal&MockObject $principalConnector;
+ private ReminderService $reminderService;
public const CALENDAR_DATA = <<<EOD
BEGIN:VCALENDAR
@@ -252,9 +233,7 @@ END:VTIMEZONE
END:VCALENDAR
ICS;
-
- /** @var null|string */
- private $oldTimezone;
+ private ?string $oldTimezone;
protected function setUp(): void {
parent::setUp();
@@ -305,13 +284,17 @@ ICS;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(2))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -353,12 +336,7 @@ EOD;
];
$this->backend->expects($this->never())
- ->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, null, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, null, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
- )
- ->willReturn(1);
+ ->method('insertReminder');
$this->reminderService->onCalendarObjectCreate($objectData);
}
@@ -371,16 +349,20 @@ EOD;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(5))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429500, false],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429620, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429740, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429860, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429980, true]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429620, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429740, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429860, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429980, true]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -398,13 +380,17 @@ EOD;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(2))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1467243900, false],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1467243900, false],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -521,17 +507,23 @@ EOD;
->willReturn([
'{urn:ietf:params:xml:ns:caldav}calendar-timezone' => null,
]);
- $this->backend->expects($this->exactly(6))
+
+ $calls = [
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467243900, false],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244020, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244140, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244260, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244380, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467243900, false],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244020, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244140, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244260, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244380, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
+
$this->timeFactory->expects($this->once())
->method('getDateTime')
->with()
@@ -556,9 +548,7 @@ EOD;
$expectedReminderTimstamp = (new DateTime('2023-02-04T08:00:00', new DateTimeZone('Europe/Vienna')))->getTimestamp();
$this->backend->expects(self::once())
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, self::anything(), false, self::anything(), false, self::anything(), self::anything(), self::anything(), true, $expectedReminderTimstamp, false],
- )
+ ->with(1337, 42, self::anything(), false, self::anything(), false, self::anything(), self::anything(), self::anything(), true, $expectedReminderTimstamp, false)
->willReturn(1);
$this->caldavBackend->expects(self::once())
->method('getCalendarById')
@@ -684,22 +674,22 @@ EOD;
$provider3 = $this->createMock(INotificationProvider::class);
$provider4 = $this->createMock(INotificationProvider::class);
$provider5 = $this->createMock(INotificationProvider::class);
- $this->notificationProviderManager->expects($this->exactly(5))
+
+ $getProviderCalls = [
+ ['EMAIL', $provider1],
+ ['EMAIL', $provider2],
+ ['DISPLAY', $provider3],
+ ['EMAIL', $provider4],
+ ['EMAIL', $provider5],
+ ];
+ $this->notificationProviderManager->expects($this->exactly(count($getProviderCalls)))
->method('getProvider')
- ->withConsecutive(
- ['EMAIL'],
- ['EMAIL'],
- ['DISPLAY'],
- ['EMAIL'],
- ['EMAIL'],
- )
- ->willReturnOnConsecutiveCalls(
- $provider1,
- $provider2,
- $provider3,
- $provider4,
- $provider5,
- );
+ ->willReturnCallback(function () use (&$getProviderCalls) {
+ $expected = array_shift($getProviderCalls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$user = $this->createMock(IUser::class);
$this->userManager->expects($this->exactly(5))
@@ -748,20 +738,36 @@ EOD;
return true;
}, 'Displayname 123', $user));
+ $removeReminderCalls = [
+ [1],
+ [2],
+ [3],
+ [4],
+ [5],
+ ];
$this->backend->expects($this->exactly(5))
->method('removeReminder')
- ->withConsecutive([1], [2], [3], [4], [5]);
- $this->backend->expects($this->exactly(6))
+ ->willReturnCallback(function () use (&$removeReminderCalls) {
+ $expected = array_shift($removeReminderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
+
+
+ $insertReminderCalls = [
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848700, false],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848820, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848940, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849060, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849180, true],
+ [1337, 42, 'wej2z68l9h', true, 1468454400, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467763200, false],
+ ];
+ $this->backend->expects($this->exactly(count($insertReminderCalls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848700, false],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848820, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848940, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849060, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849180, true],
- [1337, 42, 'wej2z68l9h', true, 1468454400, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467763200, false],
- )
- ->willReturn(99);
+ ->willReturnCallback(function () use (&$insertReminderCalls) {
+ $expected = array_shift($insertReminderCalls);
+ $this->assertEquals($expected, func_get_args());
+ return 99;
+ });
$this->timeFactory->method('getDateTime')
->willReturn(DateTime::createFromFormat(DateTime::ATOM, '2016-06-08T00:00:00+00:00'));
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php
index b2fd9cfb93f..26dbcc0f38c 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,40 +14,22 @@ use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\PropPatch;
use Test\TestCase;
-abstract class AbstractPrincipalBackendTest extends TestCase {
- /** @var ResourcePrincipalBackend|RoomPrincipalBackend */
- protected $principalBackend;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
-
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var ProxyMapper|\PHPUnit\Framework\MockObject\MockObject */
- protected $proxyMapper;
-
- /** @var string */
- protected $mainDbTable;
-
- /** @var string */
- protected $metadataDbTable;
-
- /** @var string */
- protected $foreignKey;
-
- /** @var string */
- protected $principalPrefix;
-
- /** @var string */
- protected $expectedCUType;
+abstract class AbstractPrincipalBackendTestCase extends TestCase {
+ protected ResourcePrincipalBackend|RoomPrincipalBackend $principalBackend;
+ protected IUserSession&MockObject $userSession;
+ protected IGroupManager&MockObject $groupManager;
+ protected LoggerInterface&MockObject $logger;
+ protected ProxyMapper&MockObject $proxyMapper;
+ protected string $mainDbTable;
+ protected string $metadataDbTable;
+ protected string $foreignKey;
+ protected string $principalPrefix;
+ protected string $expectedCUType;
protected function setUp(): void {
parent::setUp();
@@ -59,10 +43,10 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
protected function tearDown(): void {
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_resources')->execute();
- $query->delete('calendar_resources_md')->execute();
- $query->delete('calendar_rooms')->execute();
- $query->delete('calendar_rooms_md')->execute();
+ $query->delete('calendar_resources')->executeStatement();
+ $query->delete('calendar_resources_md')->executeStatement();
+ $query->delete('calendar_rooms')->executeStatement();
+ $query->delete('calendar_rooms_md')->executeStatement();
}
public function testGetPrincipalsByPrefix(): void {
@@ -214,38 +198,43 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
->with($this->principalPrefix . '/backend1-res1')
->willReturn([]);
+ $calls = [
+ function ($proxy) {
+ /** @var Proxy $proxy */
+ if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
+ return false;
+ }
+ if ($proxy->getProxyId() !== $this->principalPrefix . '/backend1-res2') {
+ return false;
+ }
+ if ($proxy->getPermissions() !== 3) {
+ return false;
+ }
+
+ return true;
+ },
+ function ($proxy) {
+ /** @var Proxy $proxy */
+ if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
+ return false;
+ }
+ if ($proxy->getProxyId() !== $this->principalPrefix . '/backend2-res3') {
+ return false;
+ }
+ if ($proxy->getPermissions() !== 3) {
+ return false;
+ }
+
+ return true;
+ }
+ ];
$this->proxyMapper->expects($this->exactly(2))
->method('insert')
- ->withConsecutive(
- [$this->callback(function ($proxy) {
- /** @var Proxy $proxy */
- if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
- return false;
- }
- if ($proxy->getProxyId() !== $this->principalPrefix . '/backend1-res2') {
- return false;
- }
- if ($proxy->getPermissions() !== 3) {
- return false;
- }
-
- return true;
- })],
- [$this->callback(function ($proxy) {
- /** @var Proxy $proxy */
- if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
- return false;
- }
- if ($proxy->getProxyId() !== $this->principalPrefix . '/backend2-res3') {
- return false;
- }
- if ($proxy->getPermissions() !== 3) {
- return false;
- }
-
- return true;
- })],
- );
+ ->willReturnCallback(function ($proxy) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertTrue($expected($proxy));
+ return $proxy;
+ });
$this->principalBackend->setGroupMemberSet($this->principalPrefix . '/backend1-res1/calendar-proxy-write', [$this->principalPrefix . '/backend1-res2', $this->principalPrefix . '/backend2-res3']);
}
@@ -281,7 +270,7 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
$actual);
}
- public function dataSearchPrincipals() {
+ public static function dataSearchPrincipals(): array {
// data providers are called before we subclass
// this class, $this->principalPrefix is null
// at that point, so we need this hack
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
index d430afb0b01..168e21c3a91 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking;
use OCA\DAV\CalDAV\ResourceBooking\ResourcePrincipalBackend;
-class ResourcePrincipalBackendTest extends AbstractPrincipalBackendTest {
+class ResourcePrincipalBackendTest extends AbstractPrincipalBackendTestCase {
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
index cd63a3512ae..8a53b0ee25e 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking;
use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend;
-class RoomPrincipalBackendTest extends AbstractPrincipalBackendTest {
+class RoomPrincipalBackendTest extends AbstractPrincipalBackendTestCase {
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
index 896d7e9eb5f..8e71bfa6edf 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -36,54 +38,22 @@ interface IMailServiceMock extends IMailService, IMailMessageSend {
}
class IMipPluginTest extends TestCase {
-
- /** @var IMessage|MockObject */
- private $mailMessage;
-
- /** @var IMailer|MockObject */
- private $mailer;
-
- /** @var IEMailTemplate|MockObject */
- private $emailTemplate;
-
- /** @var IAttachment|MockObject */
- private $emailAttachment;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IAppConfig|MockObject */
- private $config;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var IUser|MockObject */
- private $user;
-
- /** @var IMipPlugin */
- private $plugin;
-
- /** @var IMipService|MockObject */
- private $service;
-
- /** @var Defaults|MockObject */
- private $defaults;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
- /** @var EventComparisonService|MockObject */
- private $eventComparisonService;
-
- /** @var IMailManager|MockObject */
- private $mailManager;
-
- /** @var IMailService|IMailMessageSend|MockObject */
- private $mailService;
-
- /** @var IMailMessageNew|MockObject */
- private $mailMessageNew;
+ private IMessage&MockObject $mailMessage;
+ private IMailer&MockObject $mailer;
+ private IEMailTemplate&MockObject $emailTemplate;
+ private IAttachment&MockObject $emailAttachment;
+ private ITimeFactory&MockObject $timeFactory;
+ private IAppConfig&MockObject $config;
+ private IUserSession&MockObject $userSession;
+ private IUser&MockObject $user;
+ private IMipPlugin $plugin;
+ private IMipService&MockObject $service;
+ private Defaults&MockObject $defaults;
+ private LoggerInterface&MockObject $logger;
+ private EventComparisonService&MockObject $eventComparisonService;
+ private IMailManager&MockObject $mailManager;
+ private IMailServiceMock&MockObject $mailService;
+ private IMailMessageNew&MockObject $mailMessageNew;
protected function setUp(): void {
$this->mailMessage = $this->createMock(IMessage::class);
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
index abf8cfe3177..2be6a1cf8b1 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,15 +9,14 @@
namespace OCA\DAV\Tests\unit\CalDAV\Schedule;
-use OC\L10N\L10N;
-use OC\L10N\LazyL10N;
use OC\URLGenerator;
use OCA\DAV\CalDAV\EventReader;
use OCA\DAV\CalDAV\Schedule\IMipService;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\IDBConnection;
-use OCP\L10N\IFactory as L10NFactory;
+use OCP\IL10N;
+use OCP\L10N\IFactory;
use OCP\Security\ISecureRandom;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
@@ -24,48 +24,32 @@ use Sabre\VObject\Property\ICalendar\DateTime;
use Test\TestCase;
class IMipServiceTest extends TestCase {
- /** @var URLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IDBConnection|MockObject */
- private $db;
-
- /** @var ISecureRandom|MockObject */
- private $random;
-
- /** @var L10NFactory|MockObject */
- private $l10nFactory;
-
- /** @var L10N|MockObject */
- private $l10n;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IMipService */
- private $service;
-
- /** @var VCalendar */
- private $vCalendar1a;
- /** @var VCalendar */
- private $vCalendar1b;
- /** @var VCalendar */
- private $vCalendar2;
- /** @var VCalendar */
- private $vCalendar3;
+ private URLGenerator&MockObject $urlGenerator;
+ private IConfig&MockObject $config;
+ private IDBConnection&MockObject $db;
+ private ISecureRandom&MockObject $random;
+ private IFactory&MockObject $l10nFactory;
+ private IL10N&MockObject $l10n;
+ private ITimeFactory&MockObject $timeFactory;
+ private IMipService $service;
+
+
+ private VCalendar $vCalendar1a;
+ private VCalendar $vCalendar1b;
+ private VCalendar $vCalendar2;
+ private VCalendar $vCalendar3;
/** @var DateTime DateTime object that will be returned by DateTime() or DateTime('now') */
public static $datetimeNow;
protected function setUp(): void {
+ parent::setUp();
+
$this->urlGenerator = $this->createMock(URLGenerator::class);
$this->config = $this->createMock(IConfig::class);
$this->db = $this->createMock(IDBConnection::class);
$this->random = $this->createMock(ISecureRandom::class);
- $this->l10nFactory = $this->createMock(L10NFactory::class);
- $this->l10n = $this->createMock(LazyL10N::class);
+ $this->l10nFactory = $this->createMock(IFactory::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->l10nFactory->expects(self::once())
->method('findGenericLanguage')
@@ -170,7 +154,7 @@ class IMipServiceTest extends TestCase {
}
public function testBuildBodyDataCreated(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -218,7 +202,7 @@ class IMipServiceTest extends TestCase {
}
public function testBuildBodyDataUpdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -349,7 +333,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringSingular(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -802,7 +786,7 @@ class IMipServiceTest extends TestCase {
'In 2 months on July 1, 2024 for the entire day',
$this->service->generateWhenString($eventReader)
);
-
+
/** test patrial day event in 1 year*/
$vCalendar = clone $this->vCalendar1a;
// construct event reader
@@ -846,7 +830,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringDaily(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -960,7 +944,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringWeekly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1077,7 +1061,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringMonthly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1290,7 +1274,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringYearly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1504,7 +1488,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringFixed(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1545,7 +1529,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithRrule(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1602,7 +1586,7 @@ class IMipServiceTest extends TestCase {
'In 2 days on July 1, 2024 then on July 3, 2024 and July 5, 2024'
],
]);
-
+
// construct time factory return(s)
$this->timeFactory->method('getDateTime')->willReturnOnConsecutiveCalls(
(new \DateTime('20240629T170000', (new \DateTimeZone('America/Toronto')))),
@@ -1687,7 +1671,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithRdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1838,7 +1822,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithOneExdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -2022,7 +2006,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithTwoExdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
index f656a0fa33c..5dadb753a79 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -35,21 +36,11 @@ use Sabre\Xml\Service;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
-
- /** @var Server|MockObject */
- private $server;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var LoggerInterface&MockObject */
- private $logger;
-
- /** @var DefaultCalendarValidator */
- private $calendarValidator;
+ private Plugin $plugin;
+ private Server&MockObject $server;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private DefaultCalendarValidator $calendarValidator;
protected function setUp(): void {
parent::setUp();
@@ -59,9 +50,7 @@ class PluginTest extends TestCase {
$this->calendarValidator = new DefaultCalendarValidator();
$this->server = $this->createMock(Server::class);
- $this->server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->server->httpResponse = $this->createMock(ResponseInterface::class);
$this->server->xml = new Service();
$this->plugin = new Plugin($this->config, $this->logger, $this->calendarValidator);
@@ -69,23 +58,26 @@ class PluginTest extends TestCase {
}
public function testInitialize(): void {
-
- $this->server->expects($this->exactly(10))
+ $calls = [
+ // Sabre\CalDAV\Schedule\Plugin events
+ ['method:POST', [$this->plugin, 'httpPost'], 100],
+ ['propFind', [$this->plugin, 'propFind'], 100],
+ ['propPatch', [$this->plugin, 'propPatch'], 100],
+ ['calendarObjectChange', [$this->plugin, 'calendarObjectChange'], 100],
+ ['beforeUnbind', [$this->plugin, 'beforeUnbind'], 100],
+ ['schedule', [$this->plugin, 'scheduleLocalDelivery'], 100],
+ ['getSupportedPrivilegeSet', [$this->plugin, 'getSupportedPrivilegeSet'], 100],
+ // OCA\DAV\CalDAV\Schedule\Plugin events
+ ['propFind', [$this->plugin, 'propFindDefaultCalendarUrl'], 90],
+ ['afterWriteContent', [$this->plugin, 'dispatchSchedulingResponses'], 100],
+ ['afterCreateFile', [$this->plugin, 'dispatchSchedulingResponses'], 100],
+ ];
+ $this->server->expects($this->exactly(count($calls)))
->method('on')
- ->withConsecutive(
- // Sabre\CalDAV\Schedule\Plugin events
- ['method:POST', [$this->plugin, 'httpPost']],
- ['propFind', [$this->plugin, 'propFind']],
- ['propPatch', [$this->plugin, 'propPatch']],
- ['calendarObjectChange', [$this->plugin, 'calendarObjectChange']],
- ['beforeUnbind', [$this->plugin, 'beforeUnbind']],
- ['schedule', [$this->plugin, 'scheduleLocalDelivery']],
- ['getSupportedPrivilegeSet', [$this->plugin, 'getSupportedPrivilegeSet']],
- // OCA\DAV\CalDAV\Schedule\Plugin events
- ['propFind', [$this->plugin, 'propFindDefaultCalendarUrl'], 90],
- ['afterWriteContent', [$this->plugin, 'dispatchSchedulingResponses']],
- ['afterCreateFile', [$this->plugin, 'dispatchSchedulingResponses']]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->plugin->initialize($this->server);
}
@@ -168,7 +160,7 @@ class PluginTest extends TestCase {
$this->assertFalse($this->invokePrivate($this->plugin, 'getAttendeeRSVP', [$property3]));
}
- public function propFindDefaultCalendarUrlProvider(): array {
+ public static function propFindDefaultCalendarUrlProvider(): array {
return [
[
'principals/users/myuser',
@@ -270,7 +262,7 @@ class PluginTest extends TestCase {
],
0
);
- /** @var IPrincipal|MockObject $node */
+ /** @var IPrincipal&MockObject $node */
$node = $this->getMockBuilder(IPrincipal::class)
->disableOriginalConstructor()
->getMock();
@@ -367,7 +359,7 @@ class PluginTest extends TestCase {
}
}
- /** @var Tree|MockObject $tree */
+ /** @var Tree&MockObject $tree */
$tree = $this->createMock(Tree::class);
$tree->expects($this->once())
->method('getNodeForPath')
diff --git a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
index cbfd4639ed7..a7ca6eb8945 100644
--- a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
+++ b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,7 +12,7 @@ use Sabre\Xml\Reader;
use Test\TestCase;
class CalendarSearchReportTest extends TestCase {
- private $elementMap = [
+ private array $elementMap = [
'{http://nextcloud.com/ns}calendar-search' =>
'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
];
@@ -112,7 +114,7 @@ XML;
);
}
-
+
public function testRequiresCompFilter(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('{http://nextcloud.com/ns}prop-filter or {http://nextcloud.com/ns}param-filter given without any {http://nextcloud.com/ns}comp-filter');
@@ -139,7 +141,7 @@ XML;
$this->parse($xml);
}
-
+
public function testRequiresFilter(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('The {http://nextcloud.com/ns}filter element is required for this request');
@@ -157,7 +159,7 @@ XML;
$this->parse($xml);
}
-
+
public function testNoSearchTerm(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('{http://nextcloud.com/ns}search-term is required for this request');
@@ -185,7 +187,7 @@ XML;
$this->parse($xml);
}
-
+
public function testCompOnly(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('At least one{http://nextcloud.com/ns}prop-filter or {http://nextcloud.com/ns}param-filter is required for this request');
@@ -313,7 +315,7 @@ XML;
);
}
- private function parse($xml, array $elementMap = []) {
+ private function parse(string $xml, array $elementMap = []): array {
$reader = new Reader();
$reader->elementMap = array_merge($this->elementMap, $elementMap);
$reader->xml($xml);
diff --git a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
index 0da971dc36b..e576fbae34c 100644
--- a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php b/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
index fc0bd1502b2..a5cf6a23c66 100644
--- a/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
@@ -24,11 +24,11 @@ use Test\TestCase;
class RateLimitingPluginTest extends TestCase {
- private Limiter|MockObject $limiter;
- private CalDavBackend|MockObject $caldavBackend;
- private IUserManager|MockObject $userManager;
- private LoggerInterface|MockObject $logger;
- private IAppConfig|MockObject $config;
+ private Limiter&MockObject $limiter;
+ private CalDavBackend&MockObject $caldavBackend;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IAppConfig&MockObject $config;
private string $userId = 'user123';
private RateLimitingPlugin $plugin;
diff --git a/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php b/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
index 78e76cf507d..ee0ef2334ec 100644
--- a/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -25,14 +27,14 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class StatusServiceTest extends TestCase {
- private ITimeFactory|MockObject $timeFactory;
- private IManager|MockObject $calendarManager;
- private IUserManager|MockObject $userManager;
- private UserStatusService|MockObject $userStatusService;
- private IAvailabilityCoordinator|MockObject $availabilityCoordinator;
- private ICacheFactory|MockObject $cacheFactory;
- private LoggerInterface|MockObject $logger;
- private ICache|MockObject $cache;
+ private ITimeFactory&MockObject $timeFactory;
+ private IManager&MockObject $calendarManager;
+ private IUserManager&MockObject $userManager;
+ private UserStatusService&MockObject $userStatusService;
+ private IAvailabilityCoordinator&MockObject $availabilityCoordinator;
+ private ICacheFactory&MockObject $cacheFactory;
+ private LoggerInterface&MockObject $logger;
+ private ICache&MockObject $cache;
private StatusService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php b/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
index d5a62a9732f..2d6d0e86358 100644
--- a/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
+++ b/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
@@ -1,7 +1,6 @@
<?php
declare(strict_types=1);
-
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php b/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
index b01139e4093..5bb87be67c1 100644
--- a/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
@@ -1,11 +1,6 @@
<?php
-/**
- * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
declare(strict_types=1);
-
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,10 +21,9 @@ use Sabre\VObject\Component\VTimeZone;
use Test\TestCase;
class TimezoneServiceTest extends TestCase {
-
- private IConfig|MockObject $config;
- private PropertyMapper|MockObject $propertyMapper;
- private IManager|MockObject $calendarManager;
+ private IConfig&MockObject $config;
+ private PropertyMapper&MockObject $propertyMapper;
+ private IManager&MockObject $calendarManager;
private TimezoneService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/TipBrokerTest.php b/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
index 3a8e240c1d8..ddf992767d6 100644
--- a/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
+++ b/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -42,7 +44,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnCreate(): void {
-
+
// construct calendar and generate event info for newly created event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = [
@@ -61,7 +63,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnModify(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -79,7 +81,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnDelete(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -96,7 +98,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnStatusCancelled(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -114,7 +116,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnAddAttendee(): void {
-
+
// construct calendar and generate event info for modified event with two attendees
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -141,7 +143,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnRemoveAttendee(): void {
-
+
// construct calendar and generate event info for modified event with two attendees
$calendar = clone $this->vCalendar1a;
$calendar->VEVENT->add('ATTENDEE', 'mailto:attendee2@testing.com', [
diff --git a/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php b/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
index 0329279af09..74fb4b5e94e 100644
--- a/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
@@ -18,11 +18,11 @@ use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class CalDavValidatePluginTest extends TestCase {
+ private IAppConfig&MockObject $config;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
private CalDavValidatePlugin $plugin;
- private IAppConfig|MockObject $config;
- private RequestInterface|MockObject $request;
- private ResponseInterface|MockObject $response;
protected function setUp(): void {
parent::setUp();
@@ -36,7 +36,7 @@ class CalDavValidatePluginTest extends TestCase {
}
public function testPutSizeLessThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -50,11 +50,11 @@ class CalDavValidatePluginTest extends TestCase {
$this->assertTrue(
$this->plugin->beforePut($this->request, $this->response)
);
-
+
}
public function testPutSizeMoreThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -67,7 +67,7 @@ class CalDavValidatePluginTest extends TestCase {
$this->expectException(Forbidden::class);
// test condition
$this->plugin->beforePut($this->request, $this->response);
-
+
}
}
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
index 5e9caaaeb44..35afc4d7ca7 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
@@ -13,7 +13,6 @@ use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
use OCP\Http\Client\LocalServerException;
use OCP\IAppConfig;
-use OCP\IConfig;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
@@ -21,9 +20,9 @@ use Test\TestCase;
class ConnectionTest extends TestCase {
- private IClientService|MockObject $clientService;
- private IConfig|MockObject $config;
- private LoggerInterface|MockObject $logger;
+ private IClientService&MockObject $clientService;
+ private IAppConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
private Connection $connection;
public function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
index 82c03c5cf68..804af021d5a 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
index d65a99a15e0..3252322ccff 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
@@ -20,10 +20,10 @@ use Sabre\VObject\Recur\NoInstancesException;
use Test\TestCase;
class RefreshWebcalServiceTest extends TestCase {
- private CalDavBackend|MockObject $caldavBackend;
- private Connection|MockObject $connection;
- private LoggerInterface|MockObject $logger;
- private ITimeFactory|MockObject $time;
+ private CalDavBackend&MockObject $caldavBackend;
+ private Connection&MockObject $connection;
+ private LoggerInterface&MockObject $logger;
+ private ITimeFactory&MockObject $time;
protected function setUp(): void {
parent::setUp();
@@ -35,10 +35,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRun(string $body, string $contentType, string $result): void {
@@ -88,10 +84,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider identicalDataProvider
*/
public function testRunIdentical(string $uid, array $calendarObject, string $body, string $contentType, string $result): void {
@@ -209,10 +201,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRunCreateCalendarNoException(string $body, string $contentType, string $result): void {
@@ -259,10 +247,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRunCreateCalendarBadRequest(string $body, string $contentType, string $result): void {
@@ -308,10 +292,7 @@ class RefreshWebcalServiceTest extends TestCase {
$refreshWebcalService->refreshSubscription('principals/users/testuser', 'sub123');
}
- /**
- * @return array
- */
- public static function identicalDataProvider():array {
+ public static function identicalDataProvider(): array {
return [
[
'12345',
@@ -330,10 +311,7 @@ class RefreshWebcalServiceTest extends TestCase {
];
}
- /**
- * @return array
- */
- public function runDataProvider():array {
+ public static function runDataProvider(): array {
return [
[
"BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:12345\r\nDTSTAMP:20160218T133704Z\r\nDTSTART;VALUE=DATE:19000101\r\nDTEND;VALUE=DATE:19000102\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:12345's Birthday (1900)\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
diff --git a/apps/dav/tests/unit/CapabilitiesTest.php b/apps/dav/tests/unit/CapabilitiesTest.php
index 21d00ef183f..ad70d576d48 100644
--- a/apps/dav/tests/unit/CapabilitiesTest.php
+++ b/apps/dav/tests/unit/CapabilitiesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
index 134a6ca5ca0..4de1cf25cc5 100644
--- a/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,20 +22,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IUserSession|MockObject */
- protected $userSession;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IUserManager|MockObject */
- protected $userManager;
+ protected IManager&MockObject $activityManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAppManager&MockObject $appManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -45,10 +38,9 @@ class BackendTest extends TestCase {
}
/**
- * @param array $methods
* @return Backend|MockObject
*/
- protected function getBackend(array $methods = []) {
+ protected function getBackend(array $methods = []): Backend {
if (empty($methods)) {
return new Backend(
$this->activityManager,
@@ -71,7 +63,7 @@ class BackendTest extends TestCase {
}
}
- public function dataCallTriggerAddressBookActivity(): array {
+ public static function dataCallTriggerAddressBookActivity(): array {
return [
['onAddressbookCreate', [['data']], Addressbook::SUBJECT_ADD, [['data'], [], []]],
['onAddressbookUpdate', [['data'], ['shares'], ['changed-properties']], Addressbook::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]],
@@ -95,7 +87,7 @@ class BackendTest extends TestCase {
call_user_func_array([$backend, $method], $payload);
}
- public function dataTriggerAddressBookActivity(): array {
+ public static function dataTriggerAddressBookActivity(): array {
return [
// Add addressbook
[Addressbook::SUBJECT_ADD, [], [], [], '', '', null, []],
@@ -160,12 +152,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerAddressBookActivity
- * @param string $action
- * @param array $data
- * @param array $shares
- * @param array $changedProperties
- * @param string $currentUser
- * @param string $author
* @param string[]|null $shareUsers
* @param string[] $users
*/
@@ -219,13 +205,13 @@ class BackendTest extends TestCase {
->method('userExists')
->willReturn(true);
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setAffectedUser')
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setSubject')
->willReturnSelf();
- $this->activityManager->expects($this->exactly(sizeof($users)))
+ $this->activityManager->expects($this->exactly(count($users)))
->method('publish')
->with($event);
} else {
@@ -261,7 +247,7 @@ class BackendTest extends TestCase {
], [], []]);
}
- public function dataTriggerCardActivity(): array {
+ public static function dataTriggerCardActivity(): array {
$cardData = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 3.4.8//EN\r\nUID:test-user\r\nFN:test-user\r\nN:test-user;;;;\r\nEND:VCARD\r\n\r\n";
return [
@@ -330,12 +316,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerCardActivity
- * @param string $action
- * @param array $addressBookData
- * @param array $shares
- * @param array $cardData
- * @param string $currentUser
- * @param string $author
* @param string[]|null $shareUsers
* @param string[] $users
*/
@@ -385,13 +365,13 @@ class BackendTest extends TestCase {
->with($author)
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setAffectedUser')
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setSubject')
->willReturnSelf();
- $this->activityManager->expects($this->exactly(sizeof($users)))
+ $this->activityManager->expects($this->exactly(count($users)))
->method('publish')
->with($event);
} else {
@@ -409,7 +389,7 @@ class BackendTest extends TestCase {
$this->assertEmpty($this->invokePrivate($backend, 'triggerCardActivity', [Card::SUBJECT_UPDATE, ['principaluri' => 'principals/system/system'], [], []]));
}
- public function dataGetUsersForShares(): array {
+ public static function dataGetUsersForShares(): array {
return [
[
[],
@@ -454,9 +434,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
*/
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -498,10 +475,9 @@ class BackendTest extends TestCase {
}
/**
- * @param string $uid
* @return IUser|MockObject
*/
- protected function getUserMock(string $uid) {
+ protected function getUserMock(string $uid): IUser {
$user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
diff --git a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
index a8bfc1b41fd..cfb14a5d567 100644
--- a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
+++ b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
@@ -12,32 +12,20 @@ use OCA\DAV\CardDAV\AddressBookImpl;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Db\PropertyMapper;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCard;
use Sabre\VObject\Property\Text;
//use Sabre\VObject\Property\;
use Test\TestCase;
class AddressBookImplTest extends TestCase {
- /** @var AddressBookImpl */
- private $addressBookImpl;
-
- /** @var array */
- private $addressBookInfo;
-
- /** @var AddressBook | \PHPUnit\Framework\MockObject\MockObject */
- private $addressBook;
-
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var PropertyMapper | \PHPUnit\Framework\MockObject\MockObject */
- private $propertyMapper;
-
- /** @var VCard | \PHPUnit\Framework\MockObject\MockObject */
- private $vCard;
+ private array $addressBookInfo;
+ private AddressBook&MockObject $addressBook;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CardDavBackend&MockObject $backend;
+ private PropertyMapper&MockObject $propertyMapper;
+ private VCard&MockObject $vCard;
+ private AddressBookImpl $addressBookImpl;
protected function setUp(): void {
parent::setUp();
@@ -48,10 +36,8 @@ class AddressBookImplTest extends TestCase {
'principaluri' => 'principals/system/system',
'{DAV:}displayname' => 'display name',
];
- $this->addressBook = $this->getMockBuilder(AddressBook::class)
- ->disableOriginalConstructor()->getMock();
- $this->backend = $this->getMockBuilder(CardDavBackend::class)
- ->disableOriginalConstructor()->getMock();
+ $this->addressBook = $this->createMock(AddressBook::class);
+ $this->backend = $this->createMock(CardDavBackend::class);
$this->vCard = $this->createMock(VCard::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->propertyMapper = $this->createMock(PropertyMapper::class);
@@ -77,7 +63,7 @@ class AddressBookImplTest extends TestCase {
}
public function testSearch(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -89,7 +75,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'readCard'])
->getMock();
$pattern = 'pattern';
@@ -107,10 +93,10 @@ class AddressBookImplTest extends TestCase {
$addressBookImpl->expects($this->exactly(2))->method('readCard')
->willReturn($this->vCard);
$addressBookImpl->expects($this->exactly(2))->method('vCard2Array')
- ->withConsecutive(
- ['foo.vcf', $this->vCard],
- ['bar.vcf', $this->vCard]
- )->willReturn('vCard');
+ ->willReturnMap([
+ ['foo.vcf', $this->vCard, 'vCard'],
+ ['bar.vcf', $this->vCard, 'vCard'],
+ ]);
$result = $addressBookImpl->search($pattern, $searchProperties, []);
$this->assertTrue((is_array($result)));
@@ -119,13 +105,11 @@ class AddressBookImplTest extends TestCase {
/**
* @dataProvider dataTestCreate
- *
- * @param array $properties
*/
- public function testCreate($properties): void {
+ public function testCreate(array $properties): void {
$uid = 'uid';
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -137,7 +121,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
->getMock();
$expectedProperties = 0;
@@ -164,7 +148,7 @@ class AddressBookImplTest extends TestCase {
$this->assertTrue($addressBookImpl->createOrUpdate($properties));
}
- public function dataTestCreate() {
+ public static function dataTestCreate(): array {
return [
[[]],
[['FN' => 'John Doe']],
@@ -177,7 +161,7 @@ class AddressBookImplTest extends TestCase {
$uri = 'bla.vcf';
$properties = ['URI' => $uri, 'UID' => $uid, 'FN' => 'John Doe'];
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -189,7 +173,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();
$addressBookImpl->expects($this->never())->method('createUid');
@@ -216,7 +200,7 @@ class AddressBookImplTest extends TestCase {
$vCard = new vCard;
$textProperty = $vCard->createProperty('KEY', 'value');
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -228,7 +212,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();
$this->backend->expects($this->once())->method('getCard')
@@ -248,11 +232,8 @@ class AddressBookImplTest extends TestCase {
/**
* @dataProvider dataTestGetPermissions
- *
- * @param array $permissions
- * @param int $expected
*/
- public function testGetPermissions($permissions, $expected): void {
+ public function testGetPermissions(array $permissions, int $expected): void {
$this->addressBook->expects($this->once())->method('getACL')
->willReturn($permissions);
@@ -261,7 +242,7 @@ class AddressBookImplTest extends TestCase {
);
}
- public function dataTestGetPermissions() {
+ public static function dataTestGetPermissions(): array {
return [
[[], 0],
[[['privilege' => '{DAV:}read']], 1],
@@ -299,7 +280,7 @@ class AddressBookImplTest extends TestCase {
}
public function testCreateUid(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -311,7 +292,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['getUid'])
+ ->onlyMethods(['getUid'])
->getMock();
$addressBookImpl->expects($this->exactly(2))
diff --git a/apps/dav/tests/unit/CardDAV/AddressBookTest.php b/apps/dav/tests/unit/CardDAV/AddressBookTest.php
index cbdb9a1402c..043b192e2c8 100644
--- a/apps/dav/tests/unit/CardDAV/AddressBookTest.php
+++ b/apps/dav/tests/unit/CardDAV/AddressBookTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,19 +29,20 @@ class AddressBookTest extends TestCase {
'uri' => 'default',
];
$l10n = $this->createMock(IL10N::class);
- $logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$card = new Card($backend, $addressBookInfo, ['id' => 5, 'carddata' => 'RANDOM VCF DATA', 'uri' => 'something', 'addressbookid' => 23]);
- $backend->expects($this->once())->method('moveCard')->with(23, 666, 'something', 'user1')->willReturn(true);
+ $backend->expects($this->once())->method('moveCard')
+ ->with(23, 666, 'something', 'user1')
+ ->willReturn(true);
$addressBook->moveInto('new', 'old', $card);
}
public function testDelete(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->once())->method('updateShares');
$backend->expects($this->any())->method('getShares')->willReturn([
['href' => 'principal:user2']
@@ -54,7 +56,7 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->delete();
}
@@ -63,7 +65,7 @@ class AddressBookTest extends TestCase {
$this->expectException(Forbidden::class);
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->never())->method('updateShares');
$backend->expects($this->any())->method('getShares')->willReturn([
['href' => 'principal:group2']
@@ -77,14 +79,14 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->delete();
}
public function testPropPatchShared(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->never())->method('updateAddressBook');
$addressBookInfo = [
'{http://owncloud.org/ns}owner-principal' => 'user1',
@@ -95,13 +97,13 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->propPatch(new PropPatch(['{DAV:}displayname' => 'Test address book']));
}
public function testPropPatchNotShared(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->atLeast(1))->method('updateAddressBook');
$addressBookInfo = [
'{DAV:}displayname' => 'Test address book',
@@ -111,16 +113,16 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->propPatch(new PropPatch(['{DAV:}displayname' => 'Test address book']));
}
/**
* @dataProvider providesReadOnlyInfo
*/
- public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet): void {
+ public function testAcl(bool $expectsWrite, ?bool $readOnlyValue, bool $hasOwnerSet): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1);
$addressBookInfo = [
'{DAV:}displayname' => 'Test address book',
@@ -136,7 +138,7 @@ class AddressBookTest extends TestCase {
}
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$acl = $addressBook->getACL();
$childAcl = $addressBook->getChildACL();
@@ -171,7 +173,7 @@ class AddressBookTest extends TestCase {
$this->assertEquals($expectedAcl, $childAcl);
}
- public function providesReadOnlyInfo(): array {
+ public static function providesReadOnlyInfo(): array {
return [
'read-only property not set' => [true, null, true],
'read-only property is false' => [true, false, true],
diff --git a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
index aeee04fd6ee..5a1210da339 100644
--- a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,25 +15,19 @@ use OCA\DAV\DAV\GroupPrincipalBackend;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
use Sabre\VObject\Reader;
use Test\TestCase;
class BirthdayServiceTest extends TestCase {
- /** @var BirthdayService */
- private $service;
- /** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $calDav;
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $cardDav;
- /** @var GroupPrincipalBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $groupPrincipalBackend;
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
- /** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
+ private CalDavBackend&MockObject $calDav;
+ private CardDavBackend&MockObject $cardDav;
+ private GroupPrincipalBackend&MockObject $groupPrincipalBackend;
+ private IConfig&MockObject $config;
+ private IDBConnection&MockObject $dbConnection;
+ private IL10N&MockObject $l10n;
+ private BirthdayService $service;
protected function setUp(): void {
parent::setUp();
@@ -57,16 +52,8 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesVCards
- * @param string $expectedSummary
- * @param string $expectedDTStart
- * @param string $expectedRrule
- * @param string $expectedFieldType
- * @param string $expectedUnknownYear
- * @param string $expectedOriginalYear
- * @param string|null $expectedReminder
- * @param string | null $data
*/
- public function testBuildBirthdayFromContact($expectedSummary, $expectedDTStart, $expectedRrule, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Bytes, $configuredReminder): void {
+ public function testBuildBirthdayFromContact(?string $expectedSummary, ?string $expectedDTStart, ?string $expectedRrule, ?string $expectedFieldType, ?string $expectedUnknownYear, ?string $expectedOriginalYear, ?string $expectedReminder, ?string $data, string $fieldType, string $prefix, bool $supports4Bytes, ?string $configuredReminder): void {
$this->dbConnection->method('supports4ByteText')->willReturn($supports4Bytes);
$cal = $this->service->buildDateFromContact($data, $fieldType, $prefix, $configuredReminder);
@@ -152,13 +139,17 @@ class BirthdayServiceTest extends TestCase {
->willReturn([
'id' => 1234
]);
- $this->calDav->expects($this->exactly(3))
+ $calls = [
+ [1234, 'default-gump.vcf.ics'],
+ [1234, 'default-gump.vcf-death.ics'],
+ [1234, 'default-gump.vcf-anniversary.ics'],
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
->method('deleteCalendarObject')
- ->withConsecutive(
- [1234, 'default-gump.vcf.ics'],
- [1234, 'default-gump.vcf-death.ics'],
- [1234, 'default-gump.vcf-anniversary.ics'],
- );
+ ->willReturnCallback(function ($calendarId, $objectUri) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri]);
+ });
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
$this->service->onCardDeleted(666, 'gump.vcf');
@@ -173,7 +164,7 @@ class BirthdayServiceTest extends TestCase {
$this->cardDav->expects($this->never())->method('getAddressBookById');
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
@@ -200,9 +191,9 @@ class BirthdayServiceTest extends TestCase {
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
$this->calDav->expects($this->never())->method('getCalendarByUri');
- /** @var BirthdayService | \PHPUnit\Framework\MockObject\MockObject $service */
+ /** @var BirthdayService&MockObject $service */
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
@@ -212,7 +203,7 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesCardChanges
*/
- public function testOnCardChanged($expectedOp): void {
+ public function testOnCardChanged(string $expectedOp): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('dav', 'generateBirthdayCalendar', 'yes')
@@ -220,11 +211,10 @@ class BirthdayServiceTest extends TestCase {
$this->config->expects($this->exactly(2))
->method('getUserValue')
- ->withConsecutive(
- ['user01', 'dav', 'generateBirthdayCalendar', 'yes'],
- ['user01', 'dav', 'birthdayCalendarReminderOffset', 'PT9H'],
- )
- ->willReturnOnConsecutiveCalls('yes', 'PT9H');
+ ->willReturnMap([
+ ['user01', 'dav', 'generateBirthdayCalendar', 'yes', 'yes'],
+ ['user01', 'dav', 'birthdayCalendarReminderOffset', 'PT9H', 'PT9H'],
+ ]);
$this->cardDav->expects($this->once())->method('getAddressBookById')
->with(666)
@@ -239,31 +229,45 @@ class BirthdayServiceTest extends TestCase {
]);
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
- /** @var BirthdayService | \PHPUnit\Framework\MockObject\MockObject $service */
+ /** @var BirthdayService&MockObject $service */
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
if ($expectedOp === 'delete') {
$this->calDav->expects($this->exactly(3))->method('getCalendarObject')->willReturn('');
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn(null);
- $this->calDav->expects($this->exactly(3))->method('deleteCalendarObject')->withConsecutive(
+
+ $calls = [
[1234, 'default-gump.vcf.ics'],
[1234, 'default-gump.vcf-death.ics'],
[1234, 'default-gump.vcf-anniversary.ics']
- );
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
+ ->method('deleteCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri]);
+ });
}
if ($expectedOp === 'create') {
$vCal = new VCalendar();
$vCal->PRODID = '-//Nextcloud testing//mocked object//';
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn($vCal);
- $this->calDav->expects($this->exactly(3))->method('createCalendarObject')->withConsecutive(
+
+ $createCalendarObjectCalls = [
[1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"]
- );
+ ];
+ $this->calDav->expects($this->exactly(count($createCalendarObjectCalls)))
+ ->method('createCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarData) use (&$createCalendarObjectCalls) {
+ $expected = array_shift($createCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
if ($expectedOp === 'update') {
$vCal = new VCalendar();
@@ -272,11 +276,18 @@ class BirthdayServiceTest extends TestCase {
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn($vCal);
$service->expects($this->exactly(3))->method('birthdayEvenChanged')->willReturn(true);
$this->calDav->expects($this->exactly(3))->method('getCalendarObject')->willReturn(['calendardata' => '']);
- $this->calDav->expects($this->exactly(3))->method('updateCalendarObject')->withConsecutive(
+
+ $updateCalendarObjectCalls = [
[1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"]
- );
+ ];
+ $this->calDav->expects($this->exactly(count($updateCalendarObjectCalls)))
+ ->method('updateCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarData) use (&$updateCalendarObjectCalls) {
+ $expected = array_shift($updateCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
$service->onCardChanged(666, 'gump.vcf', '');
@@ -284,11 +295,8 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesBirthday
- * @param $expected
- * @param $old
- * @param $new
*/
- public function testBirthdayEvenChanged($expected, $old, $new): void {
+ public function testBirthdayEvenChanged(bool $expected, string $old, string $new): void {
$new = Reader::read($new);
$this->assertEquals($expected, $this->service->birthdayEvenChanged($old, $new));
}
@@ -354,18 +362,22 @@ class BirthdayServiceTest extends TestCase {
->with(42, 0)
->willReturn([['uri' => '1.ics'], ['uri' => '2.ics'], ['uri' => '3.ics']]);
- $this->calDav->expects($this->exactly(3))
+ $calls = [
+ [42, '1.ics', 0],
+ [42, '2.ics', 0],
+ [42, '3.ics', 0],
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
->method('deleteCalendarObject')
- ->withConsecutive(
- [42, '1.ics', 0],
- [42, '2.ics', 0],
- [42, '3.ics', 0],
- );
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarType) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarType]);
+ });
$this->service->resetForUser('user123');
}
- public function providesBirthday() {
+ public static function providesBirthday(): array {
return [
[true,
'',
@@ -382,7 +394,7 @@ class BirthdayServiceTest extends TestCase {
];
}
- public function providesCardChanges() {
+ public static function providesCardChanges(): array {
return[
['delete'],
['create'],
@@ -390,7 +402,7 @@ class BirthdayServiceTest extends TestCase {
];
}
- public function providesVCards() {
+ public static function providesVCards(): array {
return [
// $expectedSummary, $expectedDTStart, $expectedRrule, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Byte, $configuredReminder
[null, null, null, null, null, null, null, 'yasfewf', '', '', true, null],
diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
index 1516d41ea39..8a279d31b02 100644
--- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
@@ -29,6 +29,7 @@ use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Server;
use OCP\Share\IManager as ShareManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\PropPatch;
@@ -45,29 +46,15 @@ use function time;
* @package OCA\DAV\Tests\unit\CardDAV
*/
class CardDavBackendTest extends TestCase {
- /** @var CardDavBackend */
- private $backend;
-
- /** @var Principal | \PHPUnit\Framework\MockObject\MockObject */
- private $principal;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- private $groupManager;
-
- /** @var IEventDispatcher|MockObject */
- private $dispatcher;
+ private Principal&MockObject $principal;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private IEventDispatcher&MockObject $dispatcher;
private Backend $sharingBackend;
- /** @var IDBConnection */
- private $db;
-
- /** @var string */
- private $dbCardsTable = 'cards';
-
- /** @var string */
- private $dbCardsPropertiesTable = 'cards_properties';
+ private IDBConnection $db;
+ private CardDavBackend $backend;
+ private string $dbCardsTable = 'cards';
+ private string $dbCardsPropertiesTable = 'cards_properties';
public const UNIT_TEST_USER = 'principals/users/carddav-unit-test';
public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
@@ -122,7 +109,7 @@ class CardDavBackendTest extends TestCase {
$this->createMock(IConfig::class),
$this->createMock(IFactory::class)
])
- ->setMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
+ ->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
->getMock();
$this->principal->method('getPrincipalByPath')
->willReturn([
@@ -151,16 +138,20 @@ class CardDavBackendTest extends TestCase {
);
// start every test with a empty cards_properties and cards table
$query = $this->db->getQueryBuilder();
- $query->delete('cards_properties')->execute();
+ $query->delete('cards_properties')->executeStatement();
$query = $this->db->getQueryBuilder();
- $query->delete('cards')->execute();
+ $query->delete('cards')->executeStatement();
- $this->tearDown();
+ $this->principal->method('getGroupMembership')
+ ->withAnyParameters()
+ ->willReturn([self::UNIT_TEST_GROUP]);
+ $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
+ foreach ($books as $book) {
+ $this->backend->deleteAddressBook($book['id']);
+ }
}
protected function tearDown(): void {
- parent::tearDown();
-
if (is_null($this->backend)) {
return;
}
@@ -172,6 +163,8 @@ class CardDavBackendTest extends TestCase {
foreach ($books as $book) {
$this->backend->deleteAddressBook($book['id']);
}
+
+ parent::tearDown();
}
public function testAddressBookOperations(): void {
@@ -236,10 +229,11 @@ class CardDavBackendTest extends TestCase {
}
public function testCardOperations(): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
+ /** @var CardDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->onlyMethods(['updateProperties', 'purgeProperties'])->getMock();
+ ->onlyMethods(['updateProperties', 'purgeProperties'])
+ ->getMock();
// create a new address book
$backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -249,12 +243,16 @@ class CardDavBackendTest extends TestCase {
$uri = $this->getUniqueID('card');
// updateProperties is expected twice, once for createCard and once for updateCard
- $backend->expects($this->exactly(2))
+ $calls = [
+ [$bookId, $uri, $this->vcardTest0],
+ [$bookId, $uri, $this->vcardTest1],
+ ];
+ $backend->expects($this->exactly(count($calls)))
->method('updateProperties')
- ->withConsecutive(
- [$bookId, $uri, $this->vcardTest0],
- [$bookId, $uri, $this->vcardTest1],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// Expect event
$this->dispatcher
@@ -294,7 +292,8 @@ class CardDavBackendTest extends TestCase {
public function testMultiCard(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -347,7 +346,8 @@ class CardDavBackendTest extends TestCase {
public function testMultipleUIDOnDifferentAddressbooks(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->onlyMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create 2 new address books
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -369,7 +369,8 @@ class CardDavBackendTest extends TestCase {
public function testMultipleUIDDenied(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -390,7 +391,8 @@ class CardDavBackendTest extends TestCase {
public function testNoValidUID(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -428,12 +430,17 @@ class CardDavBackendTest extends TestCase {
->method('getCardId')
->with($bookId, $uri)
->willThrowException(new \InvalidArgumentException());
- $this->backend->expects($this->exactly(2))
+
+ $calls = [
+ [$bookId, $uri, 1],
+ [$bookId, $uri, 3],
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('addChange')
- ->withConsecutive(
- [$bookId, $uri, 1],
- [$bookId, $uri, 3]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->backend->expects($this->never())
->method('purgeProperties');
@@ -447,7 +454,8 @@ class CardDavBackendTest extends TestCase {
public function testSyncSupport(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -639,13 +647,8 @@ class CardDavBackendTest extends TestCase {
/**
* @dataProvider dataTestSearch
- *
- * @param string $pattern
- * @param array $properties
- * @param array $options
- * @param array $expected
*/
- public function testSearch($pattern, $properties, $options, $expected): void {
+ public function testSearch(string $pattern, array $properties, array $options, array $expected): void {
/** @var VCard $vCards */
$vCards = [];
$vCards[0] = new VCard();
@@ -756,7 +759,7 @@ class CardDavBackendTest extends TestCase {
$this->assertSame(count($expected), count($found));
}
- public function dataTestSearch() {
+ public static function dataTestSearch(): array {
return [
['John', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
['M. Doe', ['FN'], [], [['uri1', 'John M. Doe']]],
diff --git a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
index 80f1f2a4445..bdd826f671b 100644
--- a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
+++ b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,16 +14,17 @@ use OCA\DAV\Db\PropertyMapper;
use OCP\Contacts\IManager;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ContactsManagerTest extends TestCase {
public function test(): void {
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject $cm */
- $cm = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
+ /** @var IManager&MockObject $cm */
+ $cm = $this->createMock(IManager::class);
$cm->expects($this->exactly(2))->method('registerAddressBook');
- $urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock();
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backEnd */
- $backEnd = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $urlGenerator = $this->createMock(IURLGenerator::class);
+ /** @var CardDavBackend&MockObject $backEnd */
+ $backEnd = $this->createMock(CardDavBackend::class);
$backEnd->method('getAddressBooksForUser')->willReturn([
['{DAV:}displayname' => 'Test address book', 'uri' => 'default'],
]);
diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php
index c29e0db5070..59042ed91d4 100644
--- a/apps/dav/tests/unit/CardDAV/ConverterTest.php
+++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php
@@ -22,17 +22,10 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ConverterTest extends TestCase {
-
- /** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
- private $accountManager;
- /** @var IUserManager|(IUserManager&MockObject)|MockObject */
- private IUserManager|MockObject $userManager;
-
- /** @var IURLGenerator */
- private $urlGenerator;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
+ private IAccountManager&MockObject $accountManager;
+ private IUserManager&MockObject $userManager;
+ private IURLGenerator&MockObject $urlGenerator;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -44,7 +37,7 @@ class ConverterTest extends TestCase {
}
/**
- * @return IAccountProperty|MockObject
+ * @return IAccountProperty&MockObject
*/
protected function getAccountPropertyMock(string $name, ?string $value, string $scope) {
$property = $this->createMock(IAccountProperty::class);
@@ -77,10 +70,11 @@ class ConverterTest extends TestCase {
yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_TWITTER, '', IAccountManager::SCOPE_LOCAL);
});
- $accountManager = $this->getMockBuilder(IAccountManager::class)
- ->disableOriginalConstructor()->getMock();
+ $accountManager = $this->createMock(IAccountManager::class);
- $accountManager->expects($this->any())->method('getAccount')->willReturn($account);
+ $accountManager->expects($this->any())
+ ->method('getAccount')
+ ->willReturn($account);
return $accountManager;
}
@@ -126,7 +120,7 @@ class ConverterTest extends TestCase {
);
}
- protected function compareData($expected, $data) {
+ protected function compareData(array $expected, array $data): void {
foreach ($expected as $key => $value) {
$found = false;
foreach ($data[1] as $d) {
@@ -141,7 +135,7 @@ class ConverterTest extends TestCase {
}
}
- public function providesNewUsers() {
+ public static function providesNewUsers(): array {
return [
[
null
@@ -197,17 +191,15 @@ class ConverterTest extends TestCase {
/**
* @dataProvider providesNames
- * @param $expected
- * @param $fullName
*/
- public function testNameSplitter($expected, $fullName): void {
+ public function testNameSplitter(string $expected, string $fullName): void {
$converter = new Converter($this->accountManager, $this->userManager, $this->urlGenerator, $this->logger);
$r = $converter->splitFullName($fullName);
$r = implode(';', $r);
$this->assertEquals($expected, $r);
}
- public function providesNames() {
+ public static function providesNames(): array {
return [
['Sauron;;;;', 'Sauron'],
['Baggins;Bilbo;;;', 'Bilbo Baggins'],
@@ -216,16 +208,13 @@ class ConverterTest extends TestCase {
}
/**
- * @param $displayName
- * @param $eMailAddress
- * @param $cloudId
- * @return IUser | \PHPUnit\Framework\MockObject\MockObject
+ * @return IUser&MockObject
*/
protected function getUserMock(string $displayName, ?string $eMailAddress, ?string $cloudId) {
- $image0 = $this->getMockBuilder(IImage::class)->disableOriginalConstructor()->getMock();
+ $image0 = $this->createMock(IImage::class);
$image0->method('mimeType')->willReturn('image/jpeg');
$image0->method('data')->willReturn('123456789');
- $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('12345');
$user->method('getDisplayName')->willReturn($displayName);
$user->method('getEMailAddress')->willReturn($eMailAddress);
diff --git a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
index d5c864d3e4e..8396234a819 100644
--- a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,6 +14,7 @@ use OCA\DAV\CardDAV\PhotoCache;
use OCP\AppFramework\Http;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\CardDAV\Card;
use Sabre\DAV\Node;
use Sabre\DAV\Server;
@@ -22,18 +24,12 @@ use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class ImageExportPluginTest extends TestCase {
- /** @var ResponseInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $response;
- /** @var RequestInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var ImageExportPlugin|\PHPUnit\Framework\MockObject\MockObject */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var Tree|\PHPUnit\Framework\MockObject\MockObject */
- private $tree;
- /** @var PhotoCache|\PHPUnit\Framework\MockObject\MockObject */
- private $cache;
+ private ResponseInterface&MockObject $response;
+ private RequestInterface&MockObject $request;
+ private Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private PhotoCache&MockObject $cache;
+ private ImageExportPlugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -45,24 +41,20 @@ class ImageExportPluginTest extends TestCase {
$this->server->tree = $this->tree;
$this->cache = $this->createMock(PhotoCache::class);
- $this->plugin = $this->getMockBuilder(ImageExportPlugin::class)
- ->setMethods(['getPhoto'])
- ->setConstructorArgs([$this->cache])
- ->getMock();
+ $this->plugin = new ImageExportPlugin($this->cache);
$this->plugin->initialize($this->server);
}
/**
* @dataProvider providesQueryParams
- * @param $param
*/
- public function testQueryParams($param): void {
+ public function testQueryParams(array $param): void {
$this->request->expects($this->once())->method('getQueryParameters')->willReturn($param);
$result = $this->plugin->httpGet($this->request, $this->response);
$this->assertTrue($result);
}
- public function providesQueryParams() {
+ public static function providesQueryParams(): array {
return [
[[]],
[['1']],
@@ -87,7 +79,7 @@ class ImageExportPluginTest extends TestCase {
$this->assertTrue($result);
}
- public function dataTestCard() {
+ public static function dataTestCard(): array {
return [
[null, false],
[null, true],
@@ -98,11 +90,8 @@ class ImageExportPluginTest extends TestCase {
/**
* @dataProvider dataTestCard
- *
- * @param $size
- * @param bool $photo
*/
- public function testCard($size, $photo): void {
+ public function testCard(?int $size, bool $photo): void {
$query = ['photo' => null];
if ($size !== null) {
$query['size'] = $size;
@@ -145,14 +134,18 @@ class ImageExportPluginTest extends TestCase {
->with(1, 'card', $size, $card)
->willReturn($file);
- $this->response->expects($this->exactly(4))
+ $setHeaderCalls = [
+ ['Cache-Control', 'private, max-age=3600, must-revalidate'],
+ ['Etag', '"myEtag"'],
+ ['Content-Type', 'image/jpeg'],
+ ['Content-Disposition', 'attachment; filename=card.jpg'],
+ ];
+ $this->response->expects($this->exactly(count($setHeaderCalls)))
->method('setHeader')
- ->withConsecutive(
- ['Cache-Control', 'private, max-age=3600, must-revalidate'],
- ['Etag', '"myEtag"'],
- ['Content-Type', 'image/jpeg'],
- ['Content-Disposition', 'attachment; filename=card.jpg'],
- );
+ ->willReturnCallback(function () use (&$setHeaderCalls) {
+ $expected = array_shift($setHeaderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->response->expects($this->once())
->method('setStatus')
@@ -161,12 +154,16 @@ class ImageExportPluginTest extends TestCase {
->method('setBody')
->with('imgdata');
} else {
- $this->response->expects($this->exactly(2))
+ $setHeaderCalls = [
+ ['Cache-Control', 'private, max-age=3600, must-revalidate'],
+ ['Etag', '"myEtag"'],
+ ];
+ $this->response->expects($this->exactly(count($setHeaderCalls)))
->method('setHeader')
- ->withConsecutive(
- ['Cache-Control', 'private, max-age=3600, must-revalidate'],
- ['Etag', '"myEtag"'],
- );
+ ->willReturnCallback(function () use (&$setHeaderCalls) {
+ $expected = array_shift($setHeaderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->cache->method('get')
->with(1, 'card', $size, $card)
->willThrowException(new NotFoundException());
diff --git a/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php b/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
index 33ab83a74ac..ee599d5a76c 100644
--- a/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
@@ -24,11 +24,11 @@ use Test\TestCase;
class CardDavRateLimitingPluginTest extends TestCase {
- private Limiter|MockObject $limiter;
- private CardDavBackend|MockObject $cardDavBackend;
- private IUserManager|MockObject $userManager;
- private LoggerInterface|MockObject $logger;
- private IAppConfig|MockObject $config;
+ private Limiter&MockObject $limiter;
+ private CardDavBackend&MockObject $cardDavBackend;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IAppConfig&MockObject $config;
private string $userId = 'user123';
private CardDavRateLimitingPlugin $plugin;
diff --git a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
index f35eb9f0040..1e934a69a53 100644
--- a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\Sharing\IShareable;
use OCA\DAV\DAV\Sharing\Plugin;
use OCP\IConfig;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -19,31 +21,25 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var IShareable | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
+ private Plugin $plugin;
+ private Server $server;
+ private IShareable&MockObject $book;
protected function setUp(): void {
parent::setUp();
- /** @var Auth | \PHPUnit\Framework\MockObject\MockObject $authBackend */
- $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock();
- $authBackend->method('isDavAuthenticated')->willReturn(true);
-
- /** @var IRequest $request */
- $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
+ $authBackend = $this->createMock(Auth::class);
+ $authBackend->method('isDavAuthenticated')
+ ->willReturn(true);
+ $request = $this->createMock(IRequest::class);
$config = $this->createMock(IConfig::class);
$this->plugin = new Plugin($authBackend, $request, $config);
$root = new SimpleCollection('root');
$this->server = new \Sabre\DAV\Server($root);
- /** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(IShareable::class)->disableOriginalConstructor()->getMock();
- $this->book->method('getName')->willReturn('addressbook1.vcf');
+ $this->book = $this->createMock(IShareable::class);
+ $this->book->method('getName')
+ ->willReturn('addressbook1.vcf');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
}
diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
index 5af42e2ea4e..fd31ef36528 100644
--- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
@@ -20,6 +20,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Http\Client\ClientExceptionInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
@@ -28,15 +29,18 @@ use Test\TestCase;
class SyncServiceTest extends TestCase {
- protected CardDavBackend $backend;
- protected IUserManager $userManager;
- protected IDBConnection $dbConnection;
+ protected CardDavBackend&MockObject $backend;
+ protected IUserManager&MockObject $userManager;
+ protected IDBConnection&MockObject $dbConnection;
protected LoggerInterface $logger;
- protected Converter $converter;
- protected IClient $client;
- protected IConfig $config;
+ protected Converter&MockObject $converter;
+ protected IClient&MockObject $client;
+ protected IConfig&MockObject $config;
protected SyncService $service;
+
public function setUp(): void {
+ parent::setUp();
+
$addressBook = [
'id' => 1,
'uri' => 'system',
@@ -293,8 +297,8 @@ END:VCARD';
}
public function testEnsureSystemAddressBookExists(): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CardDavBackend&MockObject $backend */
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->exactly(1))->method('createAddressBook');
$backend->expects($this->exactly(2))
->method('getAddressBooksByUri')
@@ -303,10 +307,9 @@ END:VCARD';
[],
);
- /** @var IUserManager $userManager */
- $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $userManager = $this->createMock(IUserManager::class);
$dbConnection = $this->createMock(IDBConnection::class);
- $logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
+ $logger = $this->createMock(LoggerInterface::class);
$converter = $this->createMock(Converter::class);
$clientService = $this->createMock(IClientService::class);
$config = $this->createMock(IConfig::class);
@@ -315,7 +318,7 @@ END:VCARD';
$ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []);
}
- public function dataActivatedUsers() {
+ public static function dataActivatedUsers(): array {
return [
[true, 1, 1, 1],
[false, 0, 0, 3],
@@ -324,15 +327,9 @@ END:VCARD';
/**
* @dataProvider dataActivatedUsers
- *
- * @param boolean $activated
- * @param integer $createCalls
- * @param integer $updateCalls
- * @param integer $deleteCalls
- * @return void
*/
- public function testUpdateAndDeleteUser($activated, $createCalls, $updateCalls, $deleteCalls): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
+ public function testUpdateAndDeleteUser(bool $activated, int $createCalls, int $updateCalls, int $deleteCalls): void {
+ /** @var CardDavBackend | MockObject $backend */
$backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
$logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
@@ -348,12 +345,9 @@ END:VCARD';
->with('principals/system/system', 'system')
->willReturn(['id' => -1]);
- /** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
- $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $userManager = $this->createMock(IUserManager::class);
$dbConnection = $this->createMock(IDBConnection::class);
-
- /** @var IUser | \PHPUnit\Framework\MockObject\MockObject $user */
- $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(IUser::class);
$user->method('getBackendClassName')->willReturn('unittest');
$user->method('getUID')->willReturn('test-user');
$user->method('getCloudId')->willReturn('cloudId');
@@ -475,7 +469,7 @@ END:VCARD';
);
}
- public function providerUseAbsoluteUriReport(): array {
+ public static function providerUseAbsoluteUriReport(): array {
return [
['https://server.internal', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
['https://server.internal/', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
diff --git a/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
index 806c71759f8..4a218fa4616 100644
--- a/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
+++ b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
@@ -30,15 +30,15 @@ use Sabre\VObject\Reader;
use Test\TestCase;
class SystemAddressBookTest extends TestCase {
- private MockObject|BackendInterface $cardDavBackend;
+ private BackendInterface&MockObject $cardDavBackend;
private array $addressBookInfo;
- private IL10N|MockObject $l10n;
- private IConfig|MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
private IUserSession $userSession;
- private IRequest|MockObject $request;
+ private IRequest&MockObject $request;
private array $server;
- private TrustedServers|MockObject $trustedServers;
- private IGroupManager|MockObject $groupManager;
+ private TrustedServers&MockObject $trustedServers;
+ private IGroupManager&MockObject $groupManager;
private SystemAddressbook $addressBook;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php b/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
index 39155aace8b..058735ba32a 100644
--- a/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
@@ -20,9 +20,9 @@ use Test\TestCase;
class CardDavValidatePluginTest extends TestCase {
private CardDavValidatePlugin $plugin;
- private IAppConfig|MockObject $config;
- private RequestInterface|MockObject $request;
- private ResponseInterface|MockObject $response;
+ private IAppConfig&MockObject $config;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
protected function setUp(): void {
parent::setUp();
@@ -36,7 +36,7 @@ class CardDavValidatePluginTest extends TestCase {
}
public function testPutSizeLessThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -50,11 +50,11 @@ class CardDavValidatePluginTest extends TestCase {
$this->assertTrue(
$this->plugin->beforePut($this->request, $this->response)
);
-
+
}
public function testPutSizeMoreThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -67,7 +67,7 @@ class CardDavValidatePluginTest extends TestCase {
$this->expectException(Forbidden::class);
// test condition
$this->plugin->beforePut($this->request, $this->response);
-
+
}
}
diff --git a/apps/dav/tests/unit/Command/DeleteCalendarTest.php b/apps/dav/tests/unit/Command/DeleteCalendarTest.php
index b621e6737d5..2bd269de6dc 100644
--- a/apps/dav/tests/unit/Command/DeleteCalendarTest.php
+++ b/apps/dav/tests/unit/Command/DeleteCalendarTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalDavBackend;
@@ -28,23 +28,12 @@ class DeleteCalendarTest extends TestCase {
public const USER = 'user';
public const NAME = 'calendar';
- /** @var CalDavBackend|MockObject */
- private $calDav;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IL10N|MockObject */
- private $l10n;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var DeleteCalendar */
- private $command;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $calDav;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private DeleteCalendar $command;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Command/ListAddressbooksTest.php b/apps/dav/tests/unit/Command/ListAddressbooksTest.php
index 2c6b1579042..624b0050bc5 100644
--- a/apps/dav/tests/unit/Command/ListAddressbooksTest.php
+++ b/apps/dav/tests/unit/Command/ListAddressbooksTest.php
@@ -5,7 +5,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Command\ListAddressbooks;
@@ -20,9 +20,8 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class ListAddressbooksTest extends TestCase {
-
- private IUserManager|MockObject $userManager;
- private CardDavBackend|MockObject $cardDavBackend;
+ private IUserManager&MockObject $userManager;
+ private CardDavBackend&MockObject $cardDavBackend;
private ListAddressbooks $command;
public const USERNAME = 'username';
@@ -72,7 +71,7 @@ class ListAddressbooksTest extends TestCase {
$this->assertStringContainsString('User <' . self::USERNAME . "> has no addressbooks\n", $commandTester->getDisplay());
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, '✓'],
[true, 'x']
diff --git a/apps/dav/tests/unit/Command/ListCalendarSharesTest.php b/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
index 3b3f3a1519e..e5d4251cbf9 100644
--- a/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
+++ b/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Command\ListCalendarShares;
diff --git a/apps/dav/tests/unit/Command/ListCalendarsTest.php b/apps/dav/tests/unit/Command/ListCalendarsTest.php
index 1f5f9882ac4..247487433eb 100644
--- a/apps/dav/tests/unit/Command/ListCalendarsTest.php
+++ b/apps/dav/tests/unit/Command/ListCalendarsTest.php
@@ -1,14 +1,17 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Command\ListCalendars;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Tester\CommandTester;
use Test\TestCase;
@@ -18,15 +21,9 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class ListCalendarsTest extends TestCase {
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
- private $userManager;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject $l10n */
- private $calDav;
-
- /** @var ListCalendars */
- private $command;
+ private IUserManager&MockObject $userManager;
+ private CalDavBackend&MockObject $calDav;
+ private ListCalendars $command;
public const USERNAME = 'username';
@@ -75,7 +72,7 @@ class ListCalendarsTest extends TestCase {
$this->assertStringContainsString('User <' . self::USERNAME . "> has no calendars\n", $commandTester->getDisplay());
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, '✓'],
[true, 'x']
diff --git a/apps/dav/tests/unit/Command/MoveCalendarTest.php b/apps/dav/tests/unit/Command/MoveCalendarTest.php
index 9b935ca3cdb..c481f5cf15b 100644
--- a/apps/dav/tests/unit/Command/MoveCalendarTest.php
+++ b/apps/dav/tests/unit/Command/MoveCalendarTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use InvalidArgumentException;
use OCA\DAV\CalDAV\CalDavBackend;
@@ -24,29 +26,14 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class MoveCalendarTest extends TestCase {
- /** @var IUserManager|MockObject $userManager */
- private $userManager;
-
- /** @var IGroupManager|MockObject $groupManager */
- private $groupManager;
-
- /** @var \OCP\Share\IManager|MockObject $shareManager */
- private $shareManager;
-
- /** @var IConfig|MockObject $l10n */
- private $config;
-
- /** @var IL10N|MockObject $l10n */
- private $l10n;
-
- /** @var CalDavBackend|MockObject $l10n */
- private $calDav;
-
- /** @var MoveCalendar */
- private $command;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private \OCP\Share\IManager&MockObject $shareManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private CalDavBackend&MockObject $calDav;
+ private LoggerInterface&MockObject $logger;
+ private MoveCalendar $command;
protected function setUp(): void {
parent::setUp();
@@ -70,7 +57,7 @@ class MoveCalendarTest extends TestCase {
);
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, true],
[true, false]
@@ -79,23 +66,16 @@ class MoveCalendarTest extends TestCase {
/**
* @dataProvider dataExecute
- *
- * @param $userOriginExists
- * @param $userDestinationExists
*/
- public function testWithBadUserOrigin($userOriginExists, $userDestinationExists): void {
+ public function testWithBadUserOrigin(bool $userOriginExists, bool $userDestinationExists): void {
$this->expectException(\InvalidArgumentException::class);
$this->userManager->expects($this->exactly($userOriginExists ? 2 : 1))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturnOnConsecutiveCalls(
- $userOriginExists,
- $userDestinationExists,
- );
+ ->willReturnMap([
+ ['user', $userOriginExists],
+ ['user2', $userDestinationExists],
+ ]);
$commandTester = new CommandTester($this->command);
$commandTester->execute([
@@ -112,11 +92,10 @@ class MoveCalendarTest extends TestCase {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->once())->method('getCalendarByUri')
->with('principals/users/user', 'personal')
@@ -137,20 +116,20 @@ class MoveCalendarTest extends TestCase {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturn([
- 'id' => 1234,
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
+ 'id' => 1234,
+ ]],
+ ['principals/users/user2', 'personal', [
+ 'id' => 1234,
+ ]],
]);
$commandTester = new CommandTester($this->command);
@@ -164,24 +143,19 @@ class MoveCalendarTest extends TestCase {
public function testMove(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->calDav->expects($this->once())->method('getShares')
->with(1234)
@@ -197,7 +171,7 @@ class MoveCalendarTest extends TestCase {
$this->assertStringContainsString('[OK] Calendar <personal> was moved from user <user> to <user2>', $commandTester->getDisplay());
}
- public function dataTestMoveWithDestinationNotPartOfGroup(): array {
+ public static function dataTestMoveWithDestinationNotPartOfGroup(): array {
return [
[true],
[false]
@@ -210,25 +184,20 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationNotPartOfGroup(bool $shareWithGroupMembersOnly): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn($shareWithGroupMembersOnly);
@@ -254,25 +223,20 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationPartOfGroup(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn(true);
@@ -300,26 +264,21 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationNotPartOfGroupAndForce(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
'{DAV:}displayname' => 'Personal'
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn(true);
@@ -345,7 +304,7 @@ class MoveCalendarTest extends TestCase {
$this->assertStringContainsString('[OK] Calendar <personal> was moved from user <user> to <user2>', $commandTester->getDisplay());
}
- public function dataTestMoveWithCalendarAlreadySharedToDestination(): array {
+ public static function dataTestMoveWithCalendarAlreadySharedToDestination(): array {
return [
[true],
[false]
@@ -358,26 +317,21 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithCalendarAlreadySharedToDestination(bool $force): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
'{DAV:}displayname' => 'Personal'
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->calDav->expects($this->once())->method('getShares')
->with(1234)
diff --git a/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
index f2346c211ce..ec56aa64eb2 100644
--- a/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
+++ b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
@@ -1,16 +1,16 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2018 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\Command\RemoveInvalidShares;
use OCA\DAV\Connector\Sabre\Principal;
use OCP\IDBConnection;
-use OCP\Migration\IOutput;
use OCP\Server;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -37,18 +37,16 @@ class RemoveInvalidSharesTest extends TestCase {
public function test(): void {
$db = Server::get(IDBConnection::class);
- /** @var Principal | \PHPUnit\Framework\MockObject\MockObject $principal */
$principal = $this->createMock(Principal::class);
- /** @var IOutput | \PHPUnit\Framework\MockObject\MockObject $output */
- $output = $this->createMock(IOutput::class);
-
$repair = new RemoveInvalidShares($db, $principal);
$this->invokePrivate($repair, 'run', [$this->createMock(InputInterface::class), $this->createMock(OutputInterface::class)]);
$query = $db->getQueryBuilder();
- $result = $query->select('*')->from('dav_shares')
- ->where($query->expr()->eq('principaluri', $query->createNamedParameter('principal:unknown')))->execute();
+ $query->select('*')
+ ->from('dav_shares')
+ ->where($query->expr()->eq('principaluri', $query->createNamedParameter('principal:unknown')));
+ $result = $query->executeQuery();
$data = $result->fetchAll();
$result->closeCursor();
$this->assertEquals(0, count($data));
diff --git a/apps/dav/tests/unit/Comments/CommentsNodeTest.php b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
index c253c59df0f..40da2e523c7 100644
--- a/apps/dav/tests/unit/Comments/CommentsNodeTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,38 +15,26 @@ use OCP\Comments\MessageTooLongException;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\PropPatch;
class CommentsNodeTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
-
- protected $comment;
- protected $node;
- protected $userManager;
- protected $logger;
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IComment&MockObject $comment;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected CommentNode $node;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->comment = $this->getMockBuilder(IComment::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->comment = $this->createMock(IComment::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->node = new CommentNode(
$this->commentsManager,
@@ -57,10 +46,7 @@ class CommentsNodeTest extends \Test\TestCase {
}
public function testDelete(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -92,10 +78,7 @@ class CommentsNodeTest extends \Test\TestCase {
public function testDeleteForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('mallory');
@@ -144,10 +127,7 @@ class CommentsNodeTest extends \Test\TestCase {
public function testUpdateComment(): void {
$msg = 'Hello Earth';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -182,10 +162,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = null;
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -221,10 +198,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Message exceeds allowed character limit of');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -261,10 +235,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = 'HaXX0r';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('mallory');
@@ -296,10 +267,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = 'HaXX0r';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->never())
->method('getUID');
@@ -344,10 +312,7 @@ class CommentsNodeTest extends \Test\TestCase {
}
public function testPropPatch(): void {
- $propPatch = $this->getMockBuilder(PropPatch::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $propPatch = $this->createMock(PropPatch::class);
$propPatch->expects($this->once())
->method('handle')
->with('{http://owncloud.org/ns}message');
@@ -396,11 +361,10 @@ class CommentsNodeTest extends \Test\TestCase {
$this->commentsManager->expects($this->exactly(2))
->method('resolveDisplayName')
- ->withConsecutive(
- [$this->equalTo('user'), $this->equalTo('alice')],
- [$this->equalTo('user'), $this->equalTo('bob')]
- )
- ->willReturnOnConsecutiveCalls('Alice Al-Isson', 'Unknown user');
+ ->willReturnMap([
+ ['user', 'alice', 'Alice Al-Isson'],
+ ['user', 'bob', 'Unknown user']
+ ]);
$this->comment->expects($this->once())
->method('getId')
@@ -491,7 +455,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->assertTrue(empty($expected));
}
- public function readCommentProvider() {
+ public static function readCommentProvider(): array {
$creationDT = new \DateTime('2016-01-19 18:48:00');
$diff = new \DateInterval('PT2H');
$readDT1 = clone $creationDT;
@@ -507,9 +471,8 @@ class CommentsNodeTest extends \Test\TestCase {
/**
* @dataProvider readCommentProvider
- * @param $expected
*/
- public function testGetPropertiesUnreadProperty($creationDT, $readDT, $expected): void {
+ public function testGetPropertiesUnreadProperty(\DateTime $creationDT, ?\DateTime $readDT, string $expected): void {
$this->comment->expects($this->any())
->method('getCreationDateTime')
->willReturn($creationDT);
diff --git a/apps/dav/tests/unit/Comments/CommentsPluginTest.php b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
index 5ca0cedf04b..35638391e67 100644
--- a/apps/dav/tests/unit/Comments/CommentsPluginTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
@@ -14,44 +14,30 @@ use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\INode;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
class CommentsPluginTest extends \Test\TestCase {
- /** @var \Sabre\DAV\Server */
- private $server;
-
- /** @var Tree */
- private $tree;
-
- /** @var ICommentsManager */
- private $commentsManager;
-
- /** @var IUserSession */
- private $userSession;
-
- /** @var CommentsPluginImplementation */
- private $plugin;
+ private \Sabre\DAV\Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private ICommentsManager&MockObject $commentsManager;
+ private IUserSession&MockObject $userSession;
+ private CommentsPluginImplementation $plugin;
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
+ $this->server = $this->getMockBuilder(\Sabre\DAV\Server::class)
->setConstructorArgs([$this->tree])
- ->setMethods(['getRequestUri'])
+ ->onlyMethods(['getRequestUri'])
->getMock();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
$this->plugin = new CommentsPluginImplementation($this->commentsManager, $this->userSession);
}
@@ -151,7 +137,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidObject(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
@@ -233,7 +219,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidActor(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -321,7 +307,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentUnsupportedMediaType(): void {
$this->expectException(\Sabre\DAV\Exception\UnsupportedMediaType::class);
@@ -409,7 +395,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidPayload(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -503,7 +489,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentMessageTooLong(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Message exceeds allowed character limit of');
@@ -597,7 +583,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testOnReportInvalidNode(): void {
$this->expectException(\Sabre\DAV\Exception\ReportNotSupported::class);
@@ -620,7 +606,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->onReport(CommentsPluginImplementation::REPORT_NAME, [], '/' . $path);
}
-
+
public function testOnReportInvalidReportName(): void {
$this->expectException(\Sabre\DAV\Exception\ReportNotSupported::class);
diff --git a/apps/dav/tests/unit/Comments/EntityCollectionTest.php b/apps/dav/tests/unit/Comments/EntityCollectionTest.php
index e5a68e5a726..fcf0748696c 100644
--- a/apps/dav/tests/unit/Comments/EntityCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/EntityCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,36 +15,23 @@ use OCP\Comments\ICommentsManager;
use OCP\Comments\NotFoundException;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class EntityCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var EntityCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected EntityCollection $collection;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->collection = new EntityCollection(
'19',
@@ -70,7 +58,7 @@ class EntityCollectionTest extends \Test\TestCase {
);
$node = $this->collection->getChild('55');
- $this->assertTrue($node instanceof CommentNode);
+ $this->assertInstanceOf(CommentNode::class, $node);
}
@@ -97,8 +85,8 @@ class EntityCollectionTest extends \Test\TestCase {
$result = $this->collection->getChildren();
- $this->assertSame(count($result), 1);
- $this->assertTrue($result[0] instanceof CommentNode);
+ $this->assertCount(1, $result);
+ $this->assertInstanceOf(CommentNode::class, $result[0]);
}
public function testFindChildren(): void {
@@ -114,8 +102,8 @@ class EntityCollectionTest extends \Test\TestCase {
$result = $this->collection->findChildren(5, 15, $dt);
- $this->assertSame(count($result), 1);
- $this->assertTrue($result[0] instanceof CommentNode);
+ $this->assertCount(1, $result);
+ $this->assertInstanceOf(CommentNode::class, $result[0]);
}
public function testChildExistsTrue(): void {
diff --git a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
index e5706099270..e5178a3e786 100644
--- a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,40 +13,25 @@ use OCA\DAV\Comments\EntityTypeCollection;
use OCP\Comments\ICommentsManager;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class EntityTypeCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var EntityTypeCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected EntityTypeCollection $collection;
protected $childMap = [];
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $instance = $this;
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->collection = new EntityTypeCollection(
'files',
@@ -53,8 +39,8 @@ class EntityTypeCollectionTest extends \Test\TestCase {
$this->userManager,
$this->userSession,
$this->logger,
- function ($child) use ($instance) {
- return !empty($instance->childMap[$child]);
+ function ($child) {
+ return !empty($this->childMap[$child]);
}
);
}
@@ -72,7 +58,7 @@ class EntityTypeCollectionTest extends \Test\TestCase {
$this->childMap[17] = true;
$ec = $this->collection->getChild('17');
- $this->assertTrue($ec instanceof EntityCollectionImplemantation);
+ $this->assertInstanceOf(EntityCollectionImplemantation::class, $ec);
}
diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php
index 5d9e828f687..9a05d996c8c 100644
--- a/apps/dav/tests/unit/Comments/RootCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,44 +17,27 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class RootCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var RootCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
- /** @var IEventDispatcher */
- protected $dispatcher;
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected IEventDispatcher $dispatcher;
+ protected IUser&MockObject $user;
+ protected RootCollection $collection;
protected function setUp(): void {
parent::setUp();
- $this->user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->user = $this->createMock(IUser::class);
+
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->dispatcher = new EventDispatcher(
new \Symfony\Component\EventDispatcher\EventDispatcher(),
\OC::$server,
@@ -69,7 +53,7 @@ class RootCollectionTest extends \Test\TestCase {
);
}
- protected function prepareForInitCollections() {
+ protected function prepareForInitCollections(): void {
$this->user->expects($this->any())
->method('getUID')
->willReturn('alice');
@@ -102,7 +86,7 @@ class RootCollectionTest extends \Test\TestCase {
public function testGetChild(): void {
$this->prepareForInitCollections();
$etc = $this->collection->getChild('files');
- $this->assertTrue($etc instanceof EntityTypeCollectionImplementation);
+ $this->assertInstanceOf(EntityTypeCollectionImplementation::class, $etc);
}
@@ -125,7 +109,7 @@ class RootCollectionTest extends \Test\TestCase {
$children = $this->collection->getChildren();
$this->assertFalse(empty($children));
foreach ($children as $child) {
- $this->assertTrue($child instanceof EntityTypeCollectionImplementation);
+ $this->assertInstanceOf(EntityTypeCollectionImplementation::class, $child);
}
}
diff --git a/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php b/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
index 2bb68374162..8b8c775c8ec 100644
--- a/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
+++ b/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,6 +15,7 @@ use OCP\Security\Bruteforce\IThrottler;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class LegacyPublicAuthTest
@@ -23,36 +25,20 @@ use OCP\Share\IShare;
* @package OCA\DAV\Tests\unit\Connector
*/
class LegacyPublicAuthTest extends \Test\TestCase {
-
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $session;
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
- /** @var LegacyPublicAuth */
- private $auth;
- /** @var IThrottler|\PHPUnit\Framework\MockObject\MockObject */
- private $throttler;
-
- /** @var string */
- private $oldUser;
+ private ISession&MockObject $session;
+ private IRequest&MockObject $request;
+ private IManager&MockObject $shareManager;
+ private IThrottler&MockObject $throttler;
+ private LegacyPublicAuth $auth;
+ private string|false $oldUser;
protected function setUp(): void {
parent::setUp();
- $this->session = $this->getMockBuilder(ISession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->shareManager = $this->getMockBuilder(IManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->throttler = $this->getMockBuilder(IThrottler::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->session = $this->createMock(ISession::class);
+ $this->request = $this->createMock(IRequest::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->throttler = $this->createMock(IThrottler::class);
$this->auth = new LegacyPublicAuth(
$this->request,
@@ -70,7 +56,9 @@ class LegacyPublicAuthTest extends \Test\TestCase {
// Set old user
\OC_User::setUserId($this->oldUser);
- \OC_Util::setupFS($this->oldUser);
+ if ($this->oldUser !== false) {
+ \OC_Util::setupFS($this->oldUser);
+ }
parent::tearDown();
}
@@ -86,9 +74,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testShareNoPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -101,9 +87,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordFancyShareType(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -118,9 +102,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
public function testSharePasswordRemote(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_REMOTE);
@@ -134,9 +116,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordLinkValidPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
@@ -156,9 +136,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordMailValidPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
@@ -178,9 +156,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testInvalidSharePasswordLinkValidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -204,9 +180,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordLinkInvalidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -231,9 +205,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
public function testSharePasswordMailInvalidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
$share->method('getId')->willReturn('42');
diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
index c6d247b3951..501ef3ef1d1 100644
--- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -29,33 +30,20 @@ use Test\TestCase;
* @group DB
*/
class AuthTest extends TestCase {
- /** @var ISession&MockObject */
- private $session;
- /** @var Auth */
- private $auth;
- /** @var Session&MockObject */
- private $userSession;
- /** @var IRequest&MockObject */
- private $request;
- /** @var Manager&MockObject */
- private $twoFactorManager;
- /** @var IThrottler&MockObject */
- private $throttler;
+ private ISession&MockObject $session;
+ private Session&MockObject $userSession;
+ private IRequest&MockObject $request;
+ private Manager&MockObject $twoFactorManager;
+ private IThrottler&MockObject $throttler;
+ private Auth $auth;
protected function setUp(): void {
parent::setUp();
- $this->session = $this->getMockBuilder(ISession::class)
- ->disableOriginalConstructor()->getMock();
- $this->userSession = $this->getMockBuilder(Session::class)
- ->disableOriginalConstructor()->getMock();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()->getMock();
- $this->twoFactorManager = $this->getMockBuilder(Manager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->throttler = $this->getMockBuilder(IThrottler::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->session = $this->createMock(ISession::class);
+ $this->userSession = $this->createMock(Session::class);
+ $this->request = $this->createMock(IRequest::class);
+ $this->twoFactorManager = $this->createMock(Manager::class);
+ $this->throttler = $this->createMock(IThrottler::class);
$this->auth = new Auth(
$this->session,
$this->userSession,
@@ -72,7 +60,7 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $this->assertFalse($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testIsDavAuthenticatedWithWrongDavSession(): void {
@@ -82,7 +70,7 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('AnotherUser');
- $this->assertFalse($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testIsDavAuthenticatedWithCorrectDavSession(): void {
@@ -92,13 +80,11 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('MyTestUser');
- $this->assertTrue($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testValidateUserPassOfAlreadyDAVAuthenticatedUser(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(1))
->method('getUID')
->willReturn('MyTestUser');
@@ -119,13 +105,11 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertTrue($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassOfInvalidDAVAuthenticatedUser(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('MyTestUser');
@@ -146,13 +130,11 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertFalse($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassOfInvalidDAVAuthenticatedUserWithValidPassword(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(2))
->method('getUID')
->willReturn('MyTestUser');
@@ -182,7 +164,7 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertTrue($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassWithInvalidPassword(): void {
@@ -199,7 +181,7 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertFalse($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
@@ -219,16 +201,12 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']);
+ self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']);
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForNonGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -242,9 +220,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -266,12 +242,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenAndCorrectlyDavAuthenticated(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -289,9 +261,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('LoggedInUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -311,12 +281,8 @@ class AuthTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
$this->expectExceptionMessage('2FA challenge not passed.');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -334,9 +300,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('LoggedInUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -360,12 +324,8 @@ class AuthTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
$this->expectExceptionMessage('CSRF check not passed.');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -383,9 +343,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('AnotherUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -401,12 +359,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForNonGetAndDesktopClient(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -424,9 +378,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -443,12 +395,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -458,9 +406,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -478,12 +424,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithCsrfTokenForGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -493,9 +435,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -513,15 +453,9 @@ class AuthTest extends TestCase {
}
public function testAuthenticateNoBasicAuthenticateHeadersProvided(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$response = $this->auth->check($server->httpRequest, $server->httpResponse);
$this->assertEquals([false, 'No \'Authorization: Basic\' header found. Either the client didn\'t send one, or the server is misconfigured'], $response);
}
@@ -532,13 +466,9 @@ class AuthTest extends TestCase {
$this->expectExceptionMessage('Cannot authenticate over ajax calls');
/** @var \Sabre\HTTP\RequestInterface&MockObject $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface&MockObject $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -562,13 +492,9 @@ class AuthTest extends TestCase {
->willReturn(false);
/** @var \Sabre\HTTP\RequestInterface&MockObject $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface&MockObject $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
$httpRequest
->expects($this->any())
->method('getHeader')
@@ -577,9 +503,7 @@ class AuthTest extends TestCase {
['Authorization', 'basic dXNlcm5hbWU6cGFzc3dvcmQ='],
]);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyDavUser');
@@ -602,17 +526,10 @@ class AuthTest extends TestCase {
public function testAuthenticateNoBasicAuthenticateHeadersProvidedWithAjaxButUserIsStillLoggedIn(): void {
/** @var \Sabre\HTTP\RequestInterface $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- /** @var IUser */
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
+ $user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('MyTestUser');
$this->userSession
->expects($this->any())
@@ -643,29 +560,21 @@ class AuthTest extends TestCase {
}
public function testAuthenticateValidCredentials(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
$server->httpRequest
->expects($this->once())
->method('getHeader')
->with('Authorization')
->willReturn('basic dXNlcm5hbWU6cGFzc3dvcmQ=');
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->once())
->method('logClientIn')
->with('username', 'password')
->willReturn(true);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(2))
->method('getUID')
->willReturn('MyTestUser');
@@ -678,12 +587,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateInvalidCredentials(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
$server->httpRequest
->expects($this->exactly(2))
->method('getHeader')
@@ -691,9 +596,7 @@ class AuthTest extends TestCase {
['Authorization', 'basic dXNlcm5hbWU6cGFzc3dvcmQ='],
['X-Requested-With', null],
]);
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->once())
->method('logClientIn')
diff --git a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
index 99c2a461557..1e6267d4cbb 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -21,14 +23,10 @@ use Test\TestCase;
* @group DB
*/
class BearerAuthTest extends TestCase {
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $session;
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var BearerAuth */
- private $bearerAuth;
+ private IUserSession&MockObject $userSession;
+ private ISession&MockObject $session;
+ private IRequest&MockObject $request;
+ private BearerAuth $bearerAuth;
private IConfig&MockObject $config;
@@ -74,9 +72,9 @@ class BearerAuthTest extends TestCase {
}
public function testChallenge(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject|RequestInterface $request */
+ /** @var RequestInterface&MockObject $request */
$request = $this->createMock(RequestInterface::class);
- /** @var \PHPUnit\Framework\MockObject\MockObject|ResponseInterface $response */
+ /** @var ResponseInterface&MockObject $response */
$response = $this->createMock(ResponseInterface::class);
$result = $this->bearerAuth->challenge($request, $response);
$this->assertEmpty($result);
diff --git a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
index 072dd1a3b58..27ddd3f4a1f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
@@ -83,7 +83,7 @@ class BlockLegacyClientPluginTest extends TestCase {
}
/** @var RequestInterface|MockObject $request */
- $request = $this->createMock('\Sabre\HTTP\RequestInterface');
+ $request = $this->createMock(RequestInterface::class);
$request
->expects($this->once())
->method('getHeader')
diff --git a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
index 1cda0e4dbdb..6606dcd5717 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,62 +9,45 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\CommentPropertiesPlugin as CommentPropertiesPluginImplementation;
+use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCP\Comments\ICommentsManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropFind;
+use Sabre\DAV\Server;
class CommentsPropertiesPluginTest extends \Test\TestCase {
-
- /** @var CommentPropertiesPluginImplementation */
- protected $plugin;
- protected $commentsManager;
- protected $userSession;
- protected $server;
+ protected CommentPropertiesPluginImplementation $plugin;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserSession&MockObject $userSession;
+ protected Server&MockObject $server;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->server = $this->createMock(Server::class);
$this->plugin = new CommentPropertiesPluginImplementation($this->commentsManager, $this->userSession);
$this->plugin->initialize($this->server);
}
- public function nodeProvider() {
- $mocks = [];
- foreach (['\OCA\DAV\Connector\Sabre\File', '\OCA\DAV\Connector\Sabre\Directory', '\Sabre\DAV\INode'] as $class) {
- $mocks[] = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
- }
-
+ public static function nodeProvider(): array {
return [
- [$mocks[0], true],
- [$mocks[1], true],
- [$mocks[2], false]
+ [File::class, true],
+ [Directory::class, true],
+ [\Sabre\DAV\INode::class, false]
];
}
/**
* @dataProvider nodeProvider
- * @param $node
- * @param $expectedSuccessful
*/
- public function testHandleGetProperties($node, $expectedSuccessful): void {
- $propFind = $this->getMockBuilder(PropFind::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testHandleGetProperties(string $class, bool $expectedSuccessful): void {
+ $propFind = $this->createMock(PropFind::class);
if ($expectedSuccessful) {
$propFind->expects($this->exactly(3))
@@ -73,10 +57,11 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
->method('handle');
}
+ $node = $this->createMock($class);
$this->plugin->handleGetProperties($propFind, $node);
}
- public function baseUriProvider() {
+ public static function baseUriProvider(): array {
return [
['owncloud/remote.php/webdav/', '4567', 'owncloud/remote.php/dav/comments/files/4567'],
['owncloud/remote.php/files/', '4567', 'owncloud/remote.php/dav/comments/files/4567'],
@@ -86,14 +71,9 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
/**
* @dataProvider baseUriProvider
- * @param $baseUri
- * @param $fid
- * @param $expectedHref
*/
- public function testGetCommentsLink($baseUri, $fid, $expectedHref): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetCommentsLink(string $baseUri, string $fid, ?string $expectedHref): void {
+ $node = $this->createMock(File::class);
$node->expects($this->any())
->method('getId')
->willReturn($fid);
@@ -106,29 +86,25 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
$this->assertSame($expectedHref, $href);
}
- public function userProvider() {
+ public static function userProvider(): array {
return [
- [
- $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock()
- ],
+ [IUser::class],
[null]
];
}
/**
* @dataProvider userProvider
- * @param $user
*/
- public function testGetUnreadCount($user): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetUnreadCount(?string $user): void {
+ $node = $this->createMock(File::class);
$node->expects($this->any())
->method('getId')
->willReturn('4567');
+ if ($user !== null) {
+ $user = $this->createMock($user);
+ }
$this->userSession->expects($this->once())
->method('getUser')
->willReturn($user);
diff --git a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
index bc19e071ee7..7067cf335ed 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,12 +16,8 @@ use Sabre\DAV\Tree;
use Test\TestCase;
class CopyEtagHeaderPluginTest extends TestCase {
-
- /** @var CopyEtagHeaderPlugin */
- private $plugin;
-
- /** @var Server */
- private $server;
+ private CopyEtagHeaderPlugin $plugin;
+ private Server $server;
protected function setUp(): void {
parent::setUp();
@@ -62,15 +59,11 @@ class CopyEtagHeaderPluginTest extends TestCase {
}
public function testAfterMove(): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->once())
->method('getETag')
->willReturn('123456');
- $tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $tree = $this->createMock(Tree::class);
$tree->expects($this->once())
->method('getNodeForPath')
->with('test.txt')
diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
index eb3f291e9c0..381206e336e 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -25,42 +26,21 @@ use Sabre\DAV\Tree;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class CustomPropertiesBackendTest extends \Test\TestCase {
-
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var CustomPropertiesBackend
- */
- private $plugin;
-
- /**
- * @var IUser
- */
- private $user;
-
- /** @property MockObject|DefaultCalendarValidator */
- private $defaultCalendarValidator;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private IUser&MockObject $user;
+ private DefaultCalendarValidator&MockObject $defaultCalendarValidator;
+ private CustomPropertiesBackend $plugin;
protected function setUp(): void {
parent::setUp();
+
$this->server = new \Sabre\DAV\Server();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
- $userId = $this->getUniqueID('testcustompropertiesuser');
+ $userId = self::getUniqueID('testcustompropertiesuser');
- $this->user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
->willReturn($userId);
@@ -88,12 +68,12 @@ class CustomPropertiesBackendTest extends \Test\TestCase {
]
);
$deleteStatement->closeCursor();
+
+ parent::tearDown();
}
- private function createTestNode($class) {
- $node = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
+ private function createTestNode(string $class) {
+ $node = $this->createMock($class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
diff --git a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
index 7fefe3e06da..85890c0f987 100644
--- a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
@@ -1,11 +1,12 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Connector\Sabre;
+namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OC\Files\FileInfo;
use OC\Files\Filesystem;
@@ -21,6 +22,7 @@ use OCP\Files\ForbiddenException;
use OCP\Files\InvalidPathException;
use OCP\Files\Mount\IMountPoint;
use OCP\Files\StorageNotAvailableException;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
class TestViewDirectory extends View {
@@ -43,7 +45,7 @@ class TestViewDirectory extends View {
return $this->deletables[$path];
}
- public function rename($path1, $path2, array $options = []) {
+ public function rename($source, $target, array $options = []) {
return $this->canRename;
}
@@ -59,16 +61,14 @@ class TestViewDirectory extends View {
class DirectoryTest extends \Test\TestCase {
use UserTrait;
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $view;
- /** @var FileInfo|\PHPUnit\Framework\MockObject\MockObject */
- private $info;
+ private View&MockObject $view;
+ private FileInfo&MockObject $info;
protected function setUp(): void {
parent::setUp();
- $this->view = $this->createMock('OC\Files\View');
- $this->info = $this->createMock('OC\Files\FileInfo');
+ $this->view = $this->createMock(View::class);
+ $this->info = $this->createMock(FileInfo::class);
$this->info->method('isReadable')
->willReturn(true);
$this->info->method('getType')
@@ -81,7 +81,7 @@ class DirectoryTest extends \Test\TestCase {
->willReturn(Constants::PERMISSION_READ);
}
- private function getDir($path = '/') {
+ private function getDir(string $path = '/'): Directory {
$this->view->expects($this->once())
->method('getRelativePath')
->willReturn($path);
@@ -174,12 +174,8 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetChildren(): void {
- $info1 = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
- $info2 = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $info1 = $this->createMock(FileInfo::class);
+ $info2 = $this->createMock(FileInfo::class);
$info1->method('getName')
->willReturn('first');
$info1->method('getPath')
@@ -214,7 +210,7 @@ class DirectoryTest extends \Test\TestCase {
$dir = new Directory($this->view, $this->info);
$nodes = $dir->getChildren();
- $this->assertEquals(2, count($nodes));
+ $this->assertCount(2, $nodes);
// calling a second time just returns the cached values,
// does not call getDirectoryContents again
@@ -273,12 +269,10 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetQuotaInfoUnlimited(): void {
- self::createUser('user', 'password');
+ $this->createUser('user', 'password');
self::loginAsUser('user');
$mountPoint = $this->createMock(IMountPoint::class);
- $storage = $this->getMockBuilder(Quota::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Quota::class);
$mountPoint->method('getStorage')
->willReturn($storage);
@@ -329,12 +323,10 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetQuotaInfoSpecific(): void {
- self::createUser('user', 'password');
+ $this->createUser('user', 'password');
self::loginAsUser('user');
$mountPoint = $this->createMock(IMountPoint::class);
- $storage = $this->getMockBuilder(Quota::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Quota::class);
$mountPoint->method('getStorage')
->willReturn($storage);
@@ -384,7 +376,7 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveFailedProvider
*/
- public function testMoveFailed($source, $destination, $updatables, $deletables): void {
+ public function testMoveFailed(string $source, string $destination, array $updatables, array $deletables): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->moveTest($source, $destination, $updatables, $deletables);
@@ -393,7 +385,7 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveSuccessProvider
*/
- public function testMoveSuccess($source, $destination, $updatables, $deletables): void {
+ public function testMoveSuccess(string $source, string $destination, array $updatables, array $deletables): void {
$this->moveTest($source, $destination, $updatables, $deletables);
$this->addToAssertionCount(1);
}
@@ -401,19 +393,19 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveFailedInvalidCharsProvider
*/
- public function testMoveFailedInvalidChars($source, $destination, $updatables, $deletables): void {
+ public function testMoveFailedInvalidChars(string $source, string $destination, array $updatables, array $deletables): void {
$this->expectException(InvalidPath::class);
$this->moveTest($source, $destination, $updatables, $deletables);
}
- public function moveFailedInvalidCharsProvider() {
+ public static function moveFailedInvalidCharsProvider(): array {
return [
['a/valid', "a/i\nvalid", ['a' => true, 'a/valid' => true, 'a/c*' => false], []],
];
}
- public function moveFailedProvider() {
+ public static function moveFailedProvider(): array {
return [
['a/b', 'a/c', ['a' => false, 'a/b' => false, 'a/c' => false], []],
['a/b', 'b/b', ['a' => false, 'a/b' => false, 'b' => false, 'b/b' => false], []],
@@ -424,7 +416,7 @@ class DirectoryTest extends \Test\TestCase {
];
}
- public function moveSuccessProvider() {
+ public static function moveSuccessProvider(): array {
return [
['a/b', 'b/b', ['a' => true, 'a/b' => true, 'b' => true, 'b/b' => false], ['a/b' => true]],
// older files with special chars can still be renamed to valid names
@@ -432,12 +424,7 @@ class DirectoryTest extends \Test\TestCase {
];
}
- /**
- * @param $source
- * @param $destination
- * @param $updatables
- */
- private function moveTest($source, $destination, $updatables, $deletables): void {
+ private function moveTest(string $source, string $destination, array $updatables, array $deletables): void {
$view = new TestViewDirectory($updatables, $deletables);
$sourceInfo = new FileInfo($source, null, null, [
@@ -449,7 +436,7 @@ class DirectoryTest extends \Test\TestCase {
$sourceNode = new Directory($view, $sourceInfo);
$targetNode = $this->getMockBuilder(Directory::class)
- ->setMethods(['childExists'])
+ ->onlyMethods(['childExists'])
->setConstructorArgs([$view, $targetInfo])
->getMock();
$targetNode->expects($this->any())->method('childExists')
diff --git a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
index 03c31dc47f8..2d688d64600 100644
--- a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,8 +20,7 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class DummyGetResponsePluginTest extends TestCase {
- /** @var DummyGetResponsePlugin */
- private $dummyGetResponsePlugin;
+ private DummyGetResponsePlugin $dummyGetResponsePlugin;
protected function setUp(): void {
parent::setUp();
@@ -29,10 +29,7 @@ class DummyGetResponsePluginTest extends TestCase {
}
public function testInitialize(): void {
- /** @var Server $server */
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$server
->expects($this->once())
->method('on')
@@ -44,13 +41,9 @@ class DummyGetResponsePluginTest extends TestCase {
public function testHttpGet(): void {
/** @var \Sabre\HTTP\RequestInterface $request */
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface $response */
- $response = $server = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$response
->expects($this->once())
->method('setBody');
diff --git a/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php b/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
index c7fb6066ed4..2f9e0ae9196 100644
--- a/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\Exception;
use OCA\DAV\Connector\Sabre\Exception\Forbidden;
+use Sabre\DAV\Server;
class ForbiddenTest extends \Test\TestCase {
public function testSerialization(): void {
@@ -32,9 +34,7 @@ class ForbiddenTest extends \Test\TestCase {
EOD;
$ex = new Forbidden($message, $retry);
- $server = $this->getMockBuilder('Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$ex->serialize($server, $error);
// assert
diff --git a/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php b/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
index 98921d735fa..6f62bef86a3 100644
--- a/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\Exception;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
+use Sabre\DAV\Server;
class InvalidPathTest extends \Test\TestCase {
public function testSerialization(): void {
@@ -32,9 +34,7 @@ class InvalidPathTest extends \Test\TestCase {
EOD;
$ex = new InvalidPath($message, $retry);
- $server = $this->getMockBuilder('Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$ex->serialize($server, $error);
// assert
diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
index 1d50fb2fb9a..a330a885b1f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -11,21 +12,16 @@ use OC\SystemConfig;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin;
use OCA\DAV\Exception\ServerMaintenanceMode;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Server;
use Test\TestCase;
class ExceptionLoggerPluginTest extends TestCase {
-
- /** @var Server */
- private $server;
-
- /** @var ExceptionLoggerPlugin */
- private $plugin;
-
- /** @var LoggerInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $logger;
+ private Server $server;
+ private ExceptionLoggerPlugin $plugin;
+ private LoggerInterface&MockObject $logger;
private function init(): void {
$config = $this->createMock(SystemConfig::class);
@@ -59,7 +55,7 @@ class ExceptionLoggerPluginTest extends TestCase {
$this->plugin->logException($e);
}
- public function providesExceptions() {
+ public static function providesExceptions(): array {
return [
['debug', new NotFound()],
['debug', new ServerMaintenanceMode('System is in maintenance mode.')],
diff --git a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
index 18165b79cb2..ef744d13e6a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,8 +23,7 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class FakeLockerPluginTest extends TestCase {
- /** @var FakeLockerPlugin */
- private $fakeLockerPlugin;
+ private FakeLockerPlugin $fakeLockerPlugin;
protected function setUp(): void {
parent::setUp();
@@ -32,18 +32,19 @@ class FakeLockerPluginTest extends TestCase {
public function testInitialize(): void {
/** @var Server $server */
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server
- ->expects($this->exactly(4))
+ $server = $this->createMock(Server::class);
+ $calls = [
+ ['method:LOCK', [$this->fakeLockerPlugin, 'fakeLockProvider'], 1],
+ ['method:UNLOCK', [$this->fakeLockerPlugin, 'fakeUnlockProvider'], 1],
+ ['propFind', [$this->fakeLockerPlugin, 'propFind'], 100],
+ ['validateTokens', [$this->fakeLockerPlugin, 'validateTokens'], 100],
+ ];
+ $server->expects($this->exactly(count($calls)))
->method('on')
- ->withConsecutive(
- ['method:LOCK', [$this->fakeLockerPlugin, 'fakeLockProvider'], 1],
- ['method:UNLOCK', [$this->fakeLockerPlugin, 'fakeUnlockProvider'], 1],
- ['propFind', [$this->fakeLockerPlugin, 'propFind']],
- ['validateTokens', [$this->fakeLockerPlugin, 'validateTokens']],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->fakeLockerPlugin->initialize($server);
}
@@ -64,24 +65,24 @@ class FakeLockerPluginTest extends TestCase {
}
public function testPropFind(): void {
- $propFind = $this->getMockBuilder(PropFind::class)
- ->disableOriginalConstructor()
- ->getMock();
- $node = $this->getMockBuilder(INode::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $propFind = $this->createMock(PropFind::class);
+ $node = $this->createMock(INode::class);
- $propFind->expects($this->exactly(2))
+ $calls = [
+ '{DAV:}supportedlock',
+ '{DAV:}lockdiscovery',
+ ];
+ $propFind->expects($this->exactly(count($calls)))
->method('handle')
- ->withConsecutive(
- ['{DAV:}supportedlock'],
- ['{DAV:}lockdiscovery'],
- );
+ ->willReturnCallback(function ($propertyName) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, $propertyName);
+ });
$this->fakeLockerPlugin->propFind($propFind, $node);
}
- public function tokenDataProvider() {
+ public static function tokenDataProvider(): array {
return [
[
[
@@ -120,21 +121,15 @@ class FakeLockerPluginTest extends TestCase {
/**
* @dataProvider tokenDataProvider
- * @param array $input
- * @param array $expected
*/
public function testValidateTokens(array $input, array $expected): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
$this->fakeLockerPlugin->validateTokens($request, $input);
$this->assertSame($expected, $input);
}
public function testFakeLockProvider(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
$response = new Response();
$server = $this->getMockBuilder(Server::class)
->getMock();
@@ -152,12 +147,8 @@ class FakeLockerPluginTest extends TestCase {
}
public function testFakeUnlockProvider(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$response->expects($this->once())
->method('setStatus')
diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php
index ef02f145375..4a7ddad7115 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -53,16 +54,9 @@ class FileTest extends TestCase {
use MountProviderTrait;
use UserTrait;
- /**
- * @var string
- */
- private $user;
-
- /** @var IConfig|MockObject */
- protected $config;
-
- /** @var IRequestId|MockObject */
- protected $requestId;
+ private string $user;
+ protected IConfig&MockObject $config;
+ protected IRequestId&MockObject $requestId;
protected function setUp(): void {
parent::setUp();
@@ -72,7 +66,7 @@ class FileTest extends TestCase {
$this->user = 'test_user';
$this->createUser($this->user, 'pass');
- $this->loginAsUser($this->user);
+ self::loginAsUser($this->user);
$this->config = $this->createMock(IConfig::class);
$this->requestId = $this->createMock(IRequestId::class);
@@ -86,9 +80,7 @@ class FileTest extends TestCase {
}
private function getMockStorage(): MockObject&IStorage {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(IStorage::class);
$storage->method('getId')
->willReturn('home::someuser');
return $storage;
@@ -102,7 +94,7 @@ class FileTest extends TestCase {
}
- public function fopenFailuresProvider() {
+ public static function fopenFailuresProvider(): array {
return [
[
// return false
@@ -161,14 +153,14 @@ class FileTest extends TestCase {
/**
* @dataProvider fopenFailuresProvider
*/
- public function testSimplePutFails($thrownException, $expectedException, $checkPreviousClass = true): void {
+ public function testSimplePutFails(?\Throwable $thrownException, string $expectedException, bool $checkPreviousClass = true): void {
// setup
$storage = $this->getMockBuilder(Local::class)
->onlyMethods(['writeStream'])
->setConstructorArgs([['datadir' => Server::get(ITempManager::class)->getTemporaryFolder()]])
->getMock();
Filesystem::mount($storage, [], $this->user . '/');
- /** @var View | MockObject $view */
+ /** @var View&MockObject $view */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath', 'resolvePath'])
->getMock();
@@ -221,12 +213,12 @@ class FileTest extends TestCase {
* Simulate putting a file to the given path.
*
* @param string $path path to put the file into
- * @param string $viewRoot root to use for the view
+ * @param ?string $viewRoot root to use for the view
* @param null|Request $request the HTTP request
*
* @return null|string of the PUT operation which is usually the etag
*/
- private function doPut($path, $viewRoot = null, ?Request $request = null) {
+ private function doPut(string $path, ?string $viewRoot = null, ?Request $request = null) {
$view = Filesystem::getView();
if (!is_null($viewRoot)) {
$view = new View($viewRoot);
@@ -245,7 +237,7 @@ class FileTest extends TestCase {
null
);
- /** @var File|MockObject $file */
+ /** @var File&MockObject $file */
$file = $this->getMockBuilder(File::class)
->setConstructorArgs([$view, $info, null, $request])
->onlyMethods(['header'])
@@ -269,55 +261,55 @@ class FileTest extends TestCase {
$this->assertNotEmpty($this->doPut('/foo.txt'));
}
- public function legalMtimeProvider() {
+ public static function legalMtimeProvider(): array {
return [
'string' => [
- 'HTTP_X_OC_MTIME' => 'string',
- 'expected result' => null
+ 'requestMtime' => 'string',
+ 'resultMtime' => null
],
'castable string (int)' => [
- 'HTTP_X_OC_MTIME' => '987654321',
- 'expected result' => 987654321
+ 'requestMtime' => '987654321',
+ 'resultMtime' => 987654321
],
'castable string (float)' => [
- 'HTTP_X_OC_MTIME' => '123456789.56',
- 'expected result' => 123456789
+ 'requestMtime' => '123456789.56',
+ 'resultMtime' => 123456789
],
'float' => [
- 'HTTP_X_OC_MTIME' => 123456789.56,
- 'expected result' => 123456789
+ 'requestMtime' => 123456789.56,
+ 'resultMtime' => 123456789
],
'zero' => [
- 'HTTP_X_OC_MTIME' => 0,
- 'expected result' => null
+ 'requestMtime' => 0,
+ 'resultMtime' => null
],
'zero string' => [
- 'HTTP_X_OC_MTIME' => '0',
- 'expected result' => null
+ 'requestMtime' => '0',
+ 'resultMtime' => null
],
'negative zero string' => [
- 'HTTP_X_OC_MTIME' => '-0',
- 'expected result' => null
+ 'requestMtime' => '-0',
+ 'resultMtime' => null
],
'string starting with number following by char' => [
- 'HTTP_X_OC_MTIME' => '2345asdf',
- 'expected result' => null
+ 'requestMtime' => '2345asdf',
+ 'resultMtime' => null
],
'string castable hex int' => [
- 'HTTP_X_OC_MTIME' => '0x45adf',
- 'expected result' => null
+ 'requestMtime' => '0x45adf',
+ 'resultMtime' => null
],
'string that looks like invalid hex int' => [
- 'HTTP_X_OC_MTIME' => '0x123g',
- 'expected result' => null
+ 'requestMtime' => '0x123g',
+ 'resultMtime' => null
],
'negative int' => [
- 'HTTP_X_OC_MTIME' => -34,
- 'expected result' => null
+ 'requestMtime' => -34,
+ 'resultMtime' => null
],
'negative float' => [
- 'HTTP_X_OC_MTIME' => -34.43,
- 'expected result' => null
+ 'requestMtime' => -34.43,
+ 'resultMtime' => null
],
];
}
@@ -326,7 +318,7 @@ class FileTest extends TestCase {
* Test putting a file with string Mtime
* @dataProvider legalMtimeProvider
*/
- public function testPutSingleFileLegalMtime($requestMtime, $resultMtime): void {
+ public function testPutSingleFileLegalMtime(mixed $requestMtime, ?int $resultMtime): void {
$request = new Request([
'server' => [
'HTTP_X_OC_MTIME' => (string)$requestMtime,
@@ -482,7 +474,7 @@ class FileTest extends TestCase {
*/
public function testSimplePutFailsSizeCheck(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
->getMock();
@@ -569,7 +561,7 @@ class FileTest extends TestCase {
*/
public function testSimplePutInvalidChars(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath'])
->getMock();
@@ -609,7 +601,7 @@ class FileTest extends TestCase {
$this->expectException(InvalidPath::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath'])
->getMock();
@@ -630,7 +622,7 @@ class FileTest extends TestCase {
public function testUploadAbort(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
->getMock();
@@ -680,7 +672,7 @@ class FileTest extends TestCase {
public function testDeleteWhenAllowed(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -704,7 +696,7 @@ class FileTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -724,7 +716,7 @@ class FileTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -749,7 +741,7 @@ class FileTest extends TestCase {
$this->expectException(Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -923,7 +915,7 @@ class FileTest extends TestCase {
public function testGetFopenFails(): void {
$this->expectException(\Sabre\DAV\Exception\ServiceUnavailable::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
@@ -945,7 +937,7 @@ class FileTest extends TestCase {
public function testGetFopenThrows(): void {
$this->expectException(Forbidden::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
@@ -967,7 +959,7 @@ class FileTest extends TestCase {
public function testGetThrowsIfNoPermission(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
index 1352229b1f5..d8b32067dda 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -73,23 +74,15 @@ class FilesPluginTest extends TestCase {
$this->accountManager,
);
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$this->server->httpResponse = $response;
$this->server->xml = new Service();
$this->plugin->initialize($this->server);
}
- /**
- * @param string $class
- * @return \PHPUnit\Framework\MockObject\MockObject
- */
- private function createTestNode($class, $path = '/dummypath') {
- $node = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
+ private function createTestNode(string $class, string $path = '/dummypath'): MockObject {
+ $node = $this->createMock($class);
$node->expects($this->any())
->method('getId')
@@ -129,8 +122,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForFile(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -149,8 +142,7 @@ class FilesPluginTest extends TestCase {
0
);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
$user
->expects($this->once())
->method('getUID')
@@ -160,8 +152,7 @@ class FilesPluginTest extends TestCase {
->method('getDisplayName')
->willReturn('M. Foo');
- $owner = $this->getMockBuilder(Account::class)
- ->disableOriginalConstructor()->getMock();
+ $owner = $this->createMock(Account::class);
$this->accountManager->expects($this->once())
->method('getAccount')
->with($user)
@@ -174,8 +165,7 @@ class FilesPluginTest extends TestCase {
->method('getOwner')
->willReturn($user);
- $displayNameProp = $this->getMockBuilder(AccountProperty::class)
- ->disableOriginalConstructor()->getMock();
+ $displayNameProp = $this->createMock(AccountProperty::class);
$owner
->expects($this->once())
->method('getProperty')
@@ -205,9 +195,7 @@ class FilesPluginTest extends TestCase {
}
public function testGetDisplayNamePropertyWhenNotPublished(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
-
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
[
@@ -220,15 +208,12 @@ class FilesPluginTest extends TestCase {
->method('getUser')
->willReturn(null);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
- $user
- ->expects($this->never())
+ $user->expects($this->never())
->method('getDisplayName');
- $owner = $this->getMockBuilder(Account::class)
- ->disableOriginalConstructor()->getMock();
+ $owner = $this->createMock(Account::class);
$this->accountManager->expects($this->once())
->method('getAccount')
->with($user)
@@ -238,8 +223,7 @@ class FilesPluginTest extends TestCase {
->method('getOwner')
->willReturn($user);
- $displayNameProp = $this->getMockBuilder(AccountProperty::class)
- ->disableOriginalConstructor()->getMock();
+ $displayNameProp = $this->createMock(AccountProperty::class);
$owner
->expects($this->once())
->method('getProperty')
@@ -257,10 +241,9 @@ class FilesPluginTest extends TestCase {
$this->assertEquals(null, $propFind->get(FilesPlugin::OWNER_DISPLAY_NAME_PROPERTYNAME));
}
-
+
public function testGetDisplayNamePropertyWhenNotPublishedButLoggedIn(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -270,15 +253,13 @@ class FilesPluginTest extends TestCase {
0
);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
$node->expects($this->once())
->method('getOwner')
->willReturn($user);
- $loggedInUser = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $loggedInUser = $this->createMock(User::class);
$this->userSession->expects($this->once())
->method('getUser')
->willReturn($loggedInUser);
@@ -300,8 +281,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesStorageNotAvailable(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -325,9 +306,7 @@ class FilesPluginTest extends TestCase {
public function testGetPublicPermissions(): void {
/** @var IRequest&MockObject */
- $request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(IRequest::class);
$this->plugin = new FilesPlugin(
$this->tree,
$this->config,
@@ -348,8 +327,8 @@ class FilesPluginTest extends TestCase {
0
);
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$node->expects($this->any())
->method('getDavPermissions')
->willReturn('DWCKMSR');
@@ -363,8 +342,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForDirectory(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\Directory');
+ /** @var Directory&MockObject $node */
+ $node = $this->createTestNode(Directory::class);
$propFind = new PropFind(
'/dummyPath',
@@ -398,10 +377,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForRootDirectory(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var Directory&MockObject $node */
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())->method('getPath')->willReturn('/');
$fileInfo = $this->createMock(FileInfo::class);
@@ -433,10 +410,8 @@ class FilesPluginTest extends TestCase {
// No read permissions can be caused by files access control.
// But we still want to load the directory list, so this is okay for us.
// $this->expectException(\Sabre\DAV\Exception\NotFound::class);
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var Directory&MockObject $node */
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())->method('getPath')->willReturn('/');
$fileInfo = $this->createMock(FileInfo::class);
@@ -465,7 +440,7 @@ class FilesPluginTest extends TestCase {
}
public function testUpdateProps(): void {
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ $node = $this->createTestNode(File::class);
$testDate = 'Fri, 13 Feb 2015 00:01:02 GMT';
$testCreationDate = '2007-08-31T16:47+00:00';
@@ -549,16 +524,12 @@ class FilesPluginTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->expectExceptionMessage('FolderA/test.txt cannot be deleted');
- $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $fileInfoFolderATestTXT = $this->createMock(FileInfo::class);
$fileInfoFolderATestTXT->expects($this->once())
->method('isDeletable')
->willReturn(false);
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn($fileInfoFolderATestTXT);
@@ -571,16 +542,12 @@ class FilesPluginTest extends TestCase {
}
public function testMoveSrcDeletable(): void {
- $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $fileInfoFolderATestTXT = $this->createMock(FileInfo::class);
$fileInfoFolderATestTXT->expects($this->once())
->method('isDeletable')
->willReturn(true);
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn($fileInfoFolderATestTXT);
@@ -596,9 +563,7 @@ class FilesPluginTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
$this->expectExceptionMessage('FolderA/test.txt does not exist');
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn(null);
@@ -674,7 +639,7 @@ class FilesPluginTest extends TestCase {
$this->plugin->checkCopy('FolderA/test.txt', 'invalid\\path.txt');
}
- public function downloadHeadersProvider() {
+ public static function downloadHeadersProvider(): array {
return [
[
false,
@@ -690,22 +655,16 @@ class FilesPluginTest extends TestCase {
/**
* @dataProvider downloadHeadersProvider
*/
- public function testDownloadHeaders($isClumsyAgent, $contentDispositionHeader): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testDownloadHeaders(bool $isClumsyAgent, string $contentDispositionHeader): void {
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request
->expects($this->once())
->method('getPath')
->willReturn('test/somefile.xml');
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(File::class);
$node
->expects($this->once())
->method('getName')
@@ -722,20 +681,24 @@ class FilesPluginTest extends TestCase {
->method('isUserAgent')
->willReturn($isClumsyAgent);
+ $calls = [
+ ['Content-Disposition', $contentDispositionHeader],
+ ['X-Accel-Buffering', 'no'],
+ ];
$response
- ->expects($this->exactly(2))
+ ->expects($this->exactly(count($calls)))
->method('addHeader')
- ->withConsecutive(
- ['Content-Disposition', $contentDispositionHeader],
- ['X-Accel-Buffering', 'no']
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected, func_get_args());
+ });
$this->plugin->httpGet($request, $response);
}
public function testHasPreview(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\Directory');
+ /** @var Directory&MockObject $node */
+ $node = $this->createTestNode(Directory::class);
$propFind = new PropFind(
'/dummyPath',
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
index 6a9372ca3fd..e6cfb1f67b2 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -31,6 +32,7 @@ use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\INode;
+use Sabre\DAV\Server;
use Sabre\DAV\Tree;
use Sabre\HTTP\ResponseInterface;
@@ -52,15 +54,11 @@ class FilesReportPluginTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
+ $this->view = $this->createMock(View::class);
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
+ $this->server = $this->getMockBuilder(Server::class)
->setConstructorArgs([$this->tree])
->onlyMethods(['getRequestUri', 'getBaseUri'])
->getMock();
@@ -69,22 +67,10 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('getBaseUri')
->willReturn('http://example.com/owncloud/remote.php/dav');
- $this->groupManager = $this->getMockBuilder(IGroupManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->userFolder = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->previewManager = $this->getMockBuilder(IPreview::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->appManager = $this->getMockBuilder(IAppManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->userFolder = $this->createMock(Folder::class);
+ $this->previewManager = $this->createMock(IPreview::class);
+ $this->appManager = $this->createMock(IAppManager::class);
$this->tagManager = $this->createMock(ISystemTagManager::class);
$this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
$this->userSession = $this->createMock(IUserSession::class);
@@ -95,9 +81,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->with('files')
->willReturn($this->privateTags);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('testuser');
@@ -124,11 +108,7 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->tree->expects($this->any())
->method('getNodeForPath')
->with('/' . $path)
- ->willReturn(
- $this->getMockBuilder(INode::class)
- ->disableOriginalConstructor()
- ->getMock()
- );
+ ->willReturn($this->createMock(INode::class));
$this->server->expects($this->any())
->method('getRequestUri')
@@ -182,16 +162,12 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('isAdmin')
->willReturn(true);
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('');
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$response->expects($this->once())
->method('setHeader')
@@ -240,14 +216,10 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1],
- [$filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2]],
+ ]);
$this->server->expects($this->any())
->method('getRequestUri')
@@ -259,74 +231,56 @@ class FilesReportPluginTest extends \Test\TestCase {
}
public function testFindNodesByFileIdsRoot(): void {
- $filesNode1 = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode1 = $this->createMock(Folder::class);
$filesNode1->expects($this->once())
->method('getName')
->willReturn('first node');
- $filesNode2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode2 = $this->createMock(File::class);
$filesNode2->expects($this->once())
->method('getName')
->willReturn('second node');
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('/');
$this->userFolder->expects($this->exactly(2))
->method('getFirstNodeById')
- ->withConsecutive(
- ['111'],
- ['222'],
- )
- ->willReturnOnConsecutiveCalls(
- $filesNode1,
- $filesNode2,
- );
+ ->willReturnMap([
+ [111, $filesNode1],
+ [222, $filesNode2],
+ ]);
/** @var Directory&MockObject $reportTargetNode */
$result = $this->plugin->findNodesByFileIds($reportTargetNode, ['111', '222']);
$this->assertCount(2, $result);
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\Directory', $result[0]);
+ $this->assertInstanceOf(Directory::class, $result[0]);
$this->assertEquals('first node', $result[0]->getName());
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\File', $result[1]);
+ $this->assertInstanceOf(\OCA\DAV\Connector\Sabre\File::class, $result[1]);
$this->assertEquals('second node', $result[1]->getName());
}
public function testFindNodesByFileIdsSubDir(): void {
- $filesNode1 = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode1 = $this->createMock(Folder::class);
$filesNode1->expects($this->once())
->method('getName')
->willReturn('first node');
- $filesNode2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode2 = $this->createMock(File::class);
$filesNode2->expects($this->once())
->method('getName')
->willReturn('second node');
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('/sub1/sub2');
- $subNode = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $subNode = $this->createMock(Folder::class);
$this->userFolder->expects($this->once())
->method('get')
@@ -335,22 +289,18 @@ class FilesReportPluginTest extends \Test\TestCase {
$subNode->expects($this->exactly(2))
->method('getFirstNodeById')
- ->withConsecutive(
- ['111'],
- ['222'],
- )
- ->willReturnOnConsecutiveCalls(
- $filesNode1,
- $filesNode2,
- );
+ ->willReturnMap([
+ [111, $filesNode1],
+ [222, $filesNode2],
+ ]);
/** @var Directory&MockObject $reportTargetNode */
$result = $this->plugin->findNodesByFileIds($reportTargetNode, ['111', '222']);
$this->assertCount(2, $result);
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\Directory', $result[0]);
+ $this->assertInstanceOf(Directory::class, $result[0]);
$this->assertEquals('first node', $result[0]->getName());
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\File', $result[1]);
+ $this->assertInstanceOf(\OCA\DAV\Connector\Sabre\File::class, $result[1]);
$this->assertEquals('second node', $result[1]->getName());
}
@@ -360,12 +310,8 @@ class FilesReportPluginTest extends \Test\TestCase {
$fileInfo = $this->createMock(FileInfo::class);
$fileInfo->method('isReadable')->willReturn(true);
- $node1 = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
- $node2 = $this->getMockBuilder(\OCA\DAV\Connector\Sabre\File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node1 = $this->createMock(Directory::class);
+ $node2 = $this->createMock(\OCA\DAV\Connector\Sabre\File::class);
$node1->expects($this->once())
->method('getInternalFileId')
@@ -385,10 +331,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->willReturn('/sub/node2');
$node2->method('getFileInfo')->willReturn($fileInfo);
- $config = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $config = $this->createMock(IConfig::class);
$validator = $this->createMock(IFilenameValidator::class);
$accountManager = $this->createMock(IAccountManager::class);
@@ -461,7 +404,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->with('OneTwoThree')
->willReturn([$filesNode1, $filesNode2]);
- $this->assertEquals([$filesNode1, $filesNode2], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, 0, 0]));
+ $this->assertEquals([$filesNode1, $filesNode2], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, 0, 0]));
}
public function testProcessFilterRulesAndCondition(): void {
@@ -513,21 +456,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFilterRulesAndConditionWithOneEmptyResult(): void {
@@ -572,21 +511,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, []],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
+ $this->assertEquals([], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
}
public function testProcessFilterRulesAndConditionWithFirstEmptyResult(): void {
@@ -631,18 +566,16 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->once())
->method('searchBySystemTag')
- ->with('OneTwoThree')
- ->willReturnOnConsecutiveCalls(
- [],
- [$filesNode1, $filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, []],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
+ $this->assertEquals([], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
}
public function testProcessFilterRulesAndConditionWithEmptyMidResult(): void {
@@ -689,7 +622,7 @@ class FilesReportPluginTest extends \Test\TestCase {
$tag789 = $this->createMock(ISystemTag::class);
$tag789->expects($this->any())
->method('getName')
- ->willReturn('SevenEightNein');
+ ->willReturn('SevenEightNine');
$tag789->expects($this->any())
->method('isUserVisible')
->willReturn(true);
@@ -701,12 +634,10 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'], ['SevenEightNein'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode3],
- [$filesNode1, $filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
@@ -714,7 +645,7 @@ class FilesReportPluginTest extends \Test\TestCase {
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '789'],
];
- $this->assertEquals([], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFilterRulesInvisibleTagAsAdmin(): void {
@@ -766,18 +697,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
@@ -816,7 +746,7 @@ class FilesReportPluginTest extends \Test\TestCase {
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]);
+ self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]);
}
public function testProcessFilterRulesVisibleTagAsUser(): void {
@@ -881,18 +811,17 @@ class FilesReportPluginTest extends \Test\TestCase {
// main assertion: only user visible tags are being passed through.
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFavoriteFilter(): void {
@@ -904,10 +833,10 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('getFavorites')
->willReturn(['456', '789']);
- $this->assertEquals(['456', '789'], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileIDs', [$rules])));
+ $this->assertEquals(['456', '789'], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileIDs', [$rules])));
}
- public function filesBaseUriProvider() {
+ public static function filesBaseUriProvider(): array {
return [
['', '', ''],
['files/username', '', '/files/username'],
@@ -920,7 +849,7 @@ class FilesReportPluginTest extends \Test\TestCase {
/**
* @dataProvider filesBaseUriProvider
*/
- public function testFilesBaseUri($uri, $reportPath, $expectedUri): void {
- $this->assertEquals($expectedUri, $this->invokePrivate($this->plugin, 'getFilesBaseUri', [$uri, $reportPath]));
+ public function testFilesBaseUri(string $uri, string $reportPath, string $expectedUri): void {
+ $this->assertEquals($expectedUri, self::invokePrivate($this->plugin, 'getFilesBaseUri', [$uri, $reportPath]));
}
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
index 9ecc49222e9..bc1d50ac41f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,6 +11,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\MaintenancePlugin;
use OCP\IConfig;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@@ -18,18 +20,15 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class MaintenancePluginTest extends TestCase {
- /** @var IConfig */
- private $config;
- /** @var \PHPUnit\Framework\MockObject\Builder\InvocationMocker|\PHPUnit_Framework_MockObject_Builder_InvocationMocker|IL10N */
- private $l10n;
- /** @var MaintenancePlugin */
- private $maintenancePlugin;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private MaintenancePlugin $maintenancePlugin;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->config = $this->createMock(IConfig::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->maintenancePlugin = new MaintenancePlugin($this->config, $this->l10n);
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
index 04cd60fbdaa..3dea5cf281b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -32,7 +33,7 @@ use PHPUnit\Framework\MockObject\MockObject;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class NodeTest extends \Test\TestCase {
- public function davPermissionsProvider() {
+ public static function davPermissionsProvider(): array {
return [
[Constants::PERMISSION_ALL, 'file', false, Constants::PERMISSION_ALL, false, 'test', 'RGDNVW'],
[Constants::PERMISSION_ALL, 'dir', false, Constants::PERMISSION_ALL, false, 'test', 'RGDNVCK'],
@@ -53,7 +54,7 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider davPermissionsProvider
*/
- public function testDavPermissions($permissions, $type, $shared, $shareRootPermissions, $mounted, $internalPath, $expected): void {
+ public function testDavPermissions(int $permissions, string $type, bool $shared, int $shareRootPermissions, bool $mounted, string $internalPath, string $expected): void {
$info = $this->getMockBuilder(FileInfo::class)
->disableOriginalConstructor()
->onlyMethods(['getPermissions', 'isShared', 'isMounted', 'getType', 'getInternalPath', 'getStorage', 'getMountPoint'])
@@ -94,15 +95,13 @@ class NodeTest extends \Test\TestCase {
}
$info->method('getStorage')
->willReturn($storage);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->assertEquals($expected, $node->getDavPermissions());
}
- public function sharePermissionsProvider() {
+ public static function sharePermissionsProvider(): array {
return [
[\OCP\Files\FileInfo::TYPE_FILE, null, 1, 1],
[\OCP\Files\FileInfo::TYPE_FILE, null, 3, 3],
@@ -145,18 +144,14 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider sharePermissionsProvider
*/
- public function testSharePermissions($type, $user, $permissions, $expected): void {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testSharePermissions(string $type, ?string $user, int $permissions, int $expected): void {
+ $storage = $this->createMock(IStorage::class);
$storage->method('getPermissions')->willReturn($permissions);
- $mountpoint = $this->getMockBuilder(IMountPoint::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $mountpoint = $this->createMock(IMountPoint::class);
$mountpoint->method('getMountPoint')->willReturn('myPath');
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $share = $this->getMockBuilder(IShare::class)->disableOriginalConstructor()->getMock();
+ $shareManager = $this->createMock(IManager::class);
+ $share = $this->createMock(IShare::class);
if ($user === null) {
$shareManager->expects($this->never())->method('getShareByToken');
@@ -169,7 +164,7 @@ class NodeTest extends \Test\TestCase {
$info = $this->getMockBuilder(FileInfo::class)
->disableOriginalConstructor()
- ->setMethods(['getStorage', 'getType', 'getMountPoint', 'getPermissions'])
+ ->onlyMethods(['getStorage', 'getType', 'getMountPoint', 'getPermissions'])
->getMock();
$info->method('getStorage')->willReturn($storage);
@@ -177,9 +172,7 @@ class NodeTest extends \Test\TestCase {
$info->method('getMountPoint')->willReturn($mountpoint);
$info->method('getPermissions')->willReturn($permissions);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
@@ -189,11 +182,11 @@ class NodeTest extends \Test\TestCase {
public function testShareAttributes(): void {
$storage = $this->getMockBuilder(SharedStorage::class)
->disableOriginalConstructor()
- ->setMethods(['getShare'])
+ ->onlyMethods(['getShare'])
->getMock();
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $share = $this->getMockBuilder(IShare::class)->disableOriginalConstructor()->getMock();
+ $shareManager = $this->createMock(IManager::class);
+ $share = $this->createMock(IShare::class);
$storage->expects($this->once())
->method('getShare')
@@ -214,9 +207,7 @@ class NodeTest extends \Test\TestCase {
$info->method('getType')->willReturn(FileInfo::TYPE_FOLDER);
/** @var View&MockObject $view */
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
@@ -224,11 +215,8 @@ class NodeTest extends \Test\TestCase {
}
public function testShareAttributesNonShare(): void {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
+ $storage = $this->createMock(IStorage::class);
+ $shareManager = $this->createMock(IManager::class);
/** @var Folder&MockObject */
$info = $this->getMockBuilder(Folder::class)
@@ -240,16 +228,14 @@ class NodeTest extends \Test\TestCase {
$info->method('getType')->willReturn(FileInfo::TYPE_FOLDER);
/** @var View&MockObject */
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
$this->assertEquals([], $node->getShareAttributes());
}
- public function sanitizeMtimeProvider() {
+ public static function sanitizeMtimeProvider(): array {
return [
[123456789, 123456789],
['987654321', 987654321],
@@ -259,7 +245,7 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider sanitizeMtimeProvider
*/
- public function testSanitizeMtime($mtime, $expected): void {
+ public function testSanitizeMtime(string|int $mtime, int $expected): void {
$view = $this->getMockBuilder(View::class)
->disableOriginalConstructor()
->getMock();
@@ -272,7 +258,7 @@ class NodeTest extends \Test\TestCase {
$this->assertEquals($expected, $result);
}
- public function invalidSanitizeMtimeProvider() {
+ public static function invalidSanitizeMtimeProvider(): array {
return [
[-1337], [0], ['abcdef'], ['-1337'], ['0'], [12321], [24 * 60 * 60 - 1],
];
@@ -281,17 +267,13 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider invalidSanitizeMtimeProvider
*/
- public function testInvalidSanitizeMtime($mtime): void {
+ public function testInvalidSanitizeMtime(int|string $mtime): void {
$this->expectException(\InvalidArgumentException::class);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
- $info = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
+ $info = $this->createMock(FileInfo::class);
$node = new File($view, $info);
- $result = $this->invokePrivate($node, 'sanitizeMtime', [$mtime]);
+ self::invokePrivate($node, 'sanitizeMtime', [$mtime]);
}
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
index 393f3c72c20..4a5937e365b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -27,7 +28,7 @@ use OCP\Files\Mount\IMountManager;
* @package OCA\DAV\Tests\Unit\Connector\Sabre
*/
class ObjectTreeTest extends \Test\TestCase {
- public function copyDataProvider() {
+ public static function copyDataProvider(): array {
return [
// copy into same dir
['a', 'b', ''],
@@ -41,7 +42,7 @@ class ObjectTreeTest extends \Test\TestCase {
/**
* @dataProvider copyDataProvider
*/
- public function testCopy($sourcePath, $targetPath, $targetParent): void {
+ public function testCopy(string $sourcePath, string $targetPath, string $targetParent): void {
$view = $this->createMock(View::class);
$view->expects($this->once())
->method('verifyPath')
@@ -67,7 +68,7 @@ class ObjectTreeTest extends \Test\TestCase {
$rootDir = new Directory($view, $info);
$objectTree = $this->getMockBuilder(ObjectTree::class)
- ->setMethods(['nodeExists', 'getNodeForPath'])
+ ->onlyMethods(['nodeExists', 'getNodeForPath'])
->setConstructorArgs([$rootDir, $view])
->getMock();
@@ -110,7 +111,7 @@ class ObjectTreeTest extends \Test\TestCase {
$rootDir = new Directory($view, $info);
$objectTree = $this->getMockBuilder(ObjectTree::class)
- ->setMethods(['nodeExists', 'getNodeForPath'])
+ ->onlyMethods(['nodeExists', 'getNodeForPath'])
->setConstructorArgs([$rootDir, $view])
->getMock();
@@ -127,23 +128,15 @@ class ObjectTreeTest extends \Test\TestCase {
* @dataProvider nodeForPathProvider
*/
public function testGetNodeForPath(
- $inputFileName,
- $fileInfoQueryPath,
- $outputFileName,
- $type,
+ string $inputFileName,
+ string $fileInfoQueryPath,
+ string $outputFileName,
+ string $type,
): void {
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
- $mountManager = $this->getMockBuilder(Manager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
- $fileInfo = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
+ $mountManager = $this->createMock(Manager::class);
+ $view = $this->createMock(View::class);
+ $fileInfo = $this->createMock(FileInfo::class);
$fileInfo->method('getType')
->willReturn($type);
$fileInfo->method('getName')
@@ -164,13 +157,13 @@ class ObjectTreeTest extends \Test\TestCase {
$this->assertEquals($outputFileName, $node->getName());
if ($type === 'file') {
- $this->assertTrue($node instanceof File);
+ $this->assertInstanceOf(File::class, $node);
} else {
- $this->assertTrue($node instanceof Directory);
+ $this->assertInstanceOf(Directory::class, $node);
}
}
- public function nodeForPathProvider() {
+ public static function nodeForPathProvider(): array {
return [
// regular file
[
@@ -213,7 +206,7 @@ class ObjectTreeTest extends \Test\TestCase {
$storage = new Temporary([]);
$view = $this->getMockBuilder(View::class)
- ->setMethods(['resolvePath'])
+ ->onlyMethods(['resolvePath'])
->getMock();
$view->expects($this->once())
->method('resolvePath')
@@ -221,9 +214,7 @@ class ObjectTreeTest extends \Test\TestCase {
return [$storage, ltrim($path, '/')];
});
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
$mountManager = $this->createMock(IMountManager::class);
$tree = new ObjectTree();
@@ -239,7 +230,7 @@ class ObjectTreeTest extends \Test\TestCase {
$storage = new Temporary([]);
$view = $this->getMockBuilder(View::class)
- ->setMethods(['resolvePath'])
+ ->onlyMethods(['resolvePath'])
->getMock();
$view->expects($this->any())
->method('resolvePath')
@@ -247,9 +238,7 @@ class ObjectTreeTest extends \Test\TestCase {
return [$storage, ltrim($path, '/')];
});
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
$mountManager = $this->createMock(IMountManager::class);
$tree = new ObjectTree();
diff --git a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
index 30e2c995d18..087bbd66107 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -30,38 +32,21 @@ use Sabre\DAV\PropPatch;
use Test\TestCase;
class PrincipalTest extends TestCase {
- /** @var IUserManager | MockObject */
- private $userManager;
-
- /** @var Principal */
- private $connector;
-
- /** @var IGroupManager | MockObject */
- private $groupManager;
-
- /** @var IAccountManager|MockObject */
- private $accountManager;
-
- /** @var IManager | MockObject */
- private $shareManager;
-
- /** @var IUserSession | MockObject */
- private $userSession;
-
- /** @var IAppManager | MockObject */
- private $appManager;
-
- /** @var ProxyMapper | MockObject */
- private $proxyMapper;
-
- /** @var KnownUserService|MockObject */
- private $knownUserService;
- /** @var IConfig | MockObject */
- private $config;
- /** @var IFactory|MockObject */
- private $languageFactory;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private IAccountManager&MockObject $accountManager;
+ private IManager&MockObject $shareManager;
+ private IUserSession&MockObject $userSession;
+ private IAppManager&MockObject $appManager;
+ private ProxyMapper&MockObject $proxyMapper;
+ private KnownUserService&MockObject $knownUserService;
+ private IConfig&MockObject $config;
+ private IFactory&MockObject $languageFactory;
+ private Principal $connector;
protected function setUp(): void {
+ parent::setUp();
+
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->accountManager = $this->createMock(IAccountManager::class);
@@ -85,7 +70,6 @@ class PrincipalTest extends TestCase {
$this->config,
$this->languageFactory
);
- parent::setUp();
}
public function testGetPrincipalsByPrefixWithoutPrefix(): void {
@@ -125,13 +109,14 @@ class PrincipalTest extends TestCase {
$this->languageFactory
->expects($this->exactly(2))
->method('getUserLanguage')
- ->withConsecutive([$fooUser], [$barUser])
- ->willReturnOnConsecutiveCalls('de', 'en');
+ ->willReturnMap([
+ [$fooUser, 'de'],
+ [$barUser, 'en'],
+ ]);
$fooAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
$fooAccountPropertyCollection->expects($this->once())
->method('getProperties')
- ->with()
->willReturn([]);
$fooAccount = $this->createMock(IAccount::class);
$fooAccount->expects($this->once())
@@ -142,18 +127,15 @@ class PrincipalTest extends TestCase {
$emailPropertyOne = $this->createMock(IAccountProperty::class);
$emailPropertyOne->expects($this->once())
->method('getValue')
- ->with()
->willReturn('alias@nextcloud.com');
$emailPropertyTwo = $this->createMock(IAccountProperty::class);
$emailPropertyTwo->expects($this->once())
->method('getValue')
- ->with()
->willReturn('alias2@nextcloud.com');
$barAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
$barAccountPropertyCollection->expects($this->once())
->method('getProperties')
- ->with()
->willReturn([$emailPropertyOne, $emailPropertyTwo]);
$barAccount = $this->createMock(IAccount::class);
$barAccount->expects($this->once())
@@ -164,8 +146,10 @@ class PrincipalTest extends TestCase {
$this->accountManager
->expects($this->exactly(2))
->method('getAccount')
- ->withConsecutive([$fooUser], [$barUser])
- ->willReturnOnConsecutiveCalls($fooAccount, $barAccount);
+ ->willReturnMap([
+ [$fooUser, $fooAccount],
+ [$barUser, $barAccount],
+ ]);
$expectedResponse = [
0 => [
@@ -482,7 +466,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider searchPrincipalsDataProvider
*/
- public function testSearchPrincipals($sharingEnabled, $groupsOnly, $test, $result): void {
+ public function testSearchPrincipals(bool $sharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
->method('shareAPIEnabled')
->willReturn($sharingEnabled);
@@ -556,7 +540,7 @@ class PrincipalTest extends TestCase {
'{DAV:}displayname' => 'User 12'], $test));
}
- public function searchPrincipalsDataProvider(): array {
+ public static function searchPrincipalsDataProvider(): array {
return [
[true, false, 'allof', ['principals/users/user3']],
[true, false, 'anyof', ['principals/users/user2', 'principals/users/user3', 'principals/users/user4']],
@@ -845,7 +829,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider findByUriWithGroupRestrictionDataProvider
*/
- public function testFindByUriWithGroupRestriction($uri, $email, $expects): void {
+ public function testFindByUriWithGroupRestriction(string $uri, string $email, ?string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -872,31 +856,23 @@ class PrincipalTest extends TestCase {
if ($email === 'user2@foo.bar') {
$this->groupManager->expects($this->exactly(2))
->method('getUserGroupIds')
- ->withConsecutive(
- [$user],
- [$user2],
- )
- ->willReturnOnConsecutiveCalls(
- ['group1', 'group2'],
- ['group1', 'group3'],
- );
+ ->willReturnMap([
+ [$user, ['group1', 'group2']],
+ [$user2, ['group1', 'group3']],
+ ]);
} else {
$this->groupManager->expects($this->exactly(2))
->method('getUserGroupIds')
- ->withConsecutive(
- [$user],
- [$user3],
- )
- ->willReturnOnConsecutiveCalls(
- ['group1', 'group2'],
- ['group3', 'group3'],
- );
+ ->willReturnMap([
+ [$user, ['group1', 'group2']],
+ [$user3, ['group3', 'group3']],
+ ]);
}
$this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users'));
}
- public function findByUriWithGroupRestrictionDataProvider(): array {
+ public static function findByUriWithGroupRestrictionDataProvider(): array {
return [
['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'],
['mailto:user3@foo.bar', 'user3@foo.bar', null],
@@ -906,7 +882,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider findByUriWithoutGroupRestrictionDataProvider
*/
- public function testFindByUriWithoutGroupRestriction($uri, $email, $expects): void {
+ public function testFindByUriWithoutGroupRestriction(string $uri, string $email, string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -928,7 +904,7 @@ class PrincipalTest extends TestCase {
$this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users'));
}
- public function findByUriWithoutGroupRestrictionDataProvider(): array {
+ public static function findByUriWithoutGroupRestrictionDataProvider(): array {
return [
['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'],
['mailto:user3@foo.bar', 'user3@foo.bar', 'principals/users/user3'],
diff --git a/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
index 42414ad6efb..e6f696ed160 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
@@ -14,8 +14,7 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PropfindCompressionPluginTest extends TestCase {
- /** @var PropfindCompressionPlugin */
- private $plugin;
+ private PropfindCompressionPlugin $plugin;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php b/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
index 67e7f6af675..2340890ae5a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -30,12 +31,12 @@ class PublicAuthTest extends \Test\TestCase {
private ISession&MockObject $session;
private IRequest&MockObject $request;
private IManager&MockObject $shareManager;
- private PublicAuth $auth;
private IThrottler&MockObject $throttler;
private LoggerInterface&MockObject $logger;
private IURLGenerator&MockObject $urlGenerator;
+ private PublicAuth $auth;
- private string $oldUser;
+ private bool|string $oldUser;
protected function setUp(): void {
parent::setUp();
@@ -65,7 +66,9 @@ class PublicAuthTest extends \Test\TestCase {
// Set old user
\OC_User::setUserId($this->oldUser);
- \OC_Util::setupFS($this->oldUser);
+ if ($this->oldUser !== false) {
+ \OC_Util::setupFS($this->oldUser);
+ }
parent::tearDown();
}
@@ -74,7 +77,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $result = $this->invokePrivate($this->auth, 'getToken');
+ $result = self::invokePrivate($this->auth, 'getToken');
$this->assertSame('GX9HSGQrGE', $result);
}
@@ -84,16 +87,14 @@ class PublicAuthTest extends \Test\TestCase {
->willReturn('/dav/files');
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $this->invokePrivate($this->auth, 'getToken');
+ self::invokePrivate($this->auth, 'getToken');
}
public function testCheckTokenValidShare(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -101,7 +102,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'checkToken');
+ $result = self::invokePrivate($this->auth, 'checkToken');
$this->assertSame([true, 'principals/GX9HSGQrGE'], $result);
}
@@ -116,16 +117,14 @@ class PublicAuthTest extends \Test\TestCase {
->will($this->throwException(new ShareNotFound()));
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testCheckTokenAlreadyAuthenticated(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(42);
$this->shareManager->expects($this->once())
@@ -136,7 +135,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- $result = $this->invokePrivate($this->auth, 'checkToken');
+ $result = self::invokePrivate($this->auth, 'checkToken');
$this->assertSame([true, 'principals/GX9HSGQrGE'], $result);
}
@@ -144,9 +143,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -158,16 +155,14 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(false);
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testCheckTokenPasswordAuthenticatedWrongShare(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -180,7 +175,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testNoShare(): void {
@@ -192,7 +187,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willThrowException(new ShareNotFound());
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -201,9 +196,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -211,7 +204,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -220,9 +213,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -231,7 +222,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -241,9 +232,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_REMOTE);
@@ -252,7 +241,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -261,9 +250,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
@@ -278,7 +265,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->equalTo('password')
)->willReturn(true);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -287,9 +274,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
@@ -304,7 +289,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->equalTo('password')
)->willReturn(true);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -313,9 +298,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -335,7 +318,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -344,9 +327,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -366,7 +347,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -376,9 +357,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
$share->method('getId')->willReturn('42');
@@ -398,7 +377,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
index c370e0fb0f7..a78a1a223c5 100644
--- a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2013-2016 ownCloud, Inc.
@@ -13,29 +14,23 @@ use OCP\Files\FileInfo;
use Test\TestCase;
class QuotaPluginTest extends TestCase {
- /** @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject */
- private $server;
+ private \Sabre\DAV\Server $server;
- /** @var QuotaPlugin|\PHPUnit\Framework\MockObject\MockObject */
- private $plugin;
+ private QuotaPlugin $plugin;
- private function init($quota, $checkedPath = ''): void {
- $view = $this->buildFileViewMock($quota, $checkedPath);
+ private function init(int $quota, string $checkedPath = ''): void {
+ $view = $this->buildFileViewMock((string)$quota, $checkedPath);
$this->server = new \Sabre\DAV\Server();
- $this->plugin = $this->getMockBuilder(QuotaPlugin::class)
- ->setConstructorArgs([$view])
- ->setMethods(['getFileChunking'])
- ->getMock();
+ $this->plugin = new QuotaPlugin($view);
$this->plugin->initialize($this->server);
}
/**
* @dataProvider lengthProvider
*/
- public function testLength($expected, $headers): void {
+ public function testLength(?int $expected, array $headers): void {
$this->init(0);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
+
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$length = $this->plugin->getLength();
$this->assertEquals($expected, $length);
@@ -44,10 +39,8 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaOkayProvider
*/
- public function testCheckQuota($quota, $headers): void {
+ public function testCheckQuota(int $quota, array $headers): void {
$this->init($quota);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$result = $this->plugin->checkQuota('');
@@ -57,12 +50,10 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaExceededProvider
*/
- public function testCheckExceededQuota($quota, $headers): void {
+ public function testCheckExceededQuota(int $quota, array $headers): void {
$this->expectException(\Sabre\DAV\Exception\InsufficientStorage::class);
$this->init($quota);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$this->plugin->checkQuota('');
@@ -71,17 +62,15 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaOkayProvider
*/
- public function testCheckQuotaOnPath($quota, $headers): void {
+ public function testCheckQuotaOnPath(int $quota, array $headers): void {
$this->init($quota, 'sub/test.txt');
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$result = $this->plugin->checkQuota('/sub/test.txt');
$this->assertTrue($result);
}
- public function quotaOkayProvider() {
+ public static function quotaOkayProvider(): array {
return [
[1024, []],
[1024, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
@@ -100,7 +89,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaExceededProvider() {
+ public static function quotaExceededProvider(): array {
return [
[1023, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[511, ['CONTENT-LENGTH' => '512']],
@@ -108,7 +97,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function lengthProvider() {
+ public static function lengthProvider(): array {
return [
[null, []],
[1024, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
@@ -124,7 +113,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaChunkedOkProvider() {
+ public static function quotaChunkedOkProvider(): array {
return [
[1024, 0, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[1024, 0, ['CONTENT-LENGTH' => '512']],
@@ -143,7 +132,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaChunkedFailProvider() {
+ public static function quotaChunkedFailProvider(): array {
return [
[400, 0, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[400, 0, ['CONTENT-LENGTH' => '512']],
@@ -155,15 +144,15 @@ class QuotaPluginTest extends TestCase {
];
}
- private function buildFileViewMock($quota, $checkedPath) {
- // mock filesysten
+ private function buildFileViewMock(string $quota, string $checkedPath): View {
+ // mock filesystem
$view = $this->getMockBuilder(View::class)
- ->setMethods(['free_space'])
+ ->onlyMethods(['free_space'])
->disableOriginalConstructor()
->getMock();
$view->expects($this->any())
->method('free_space')
- ->with($this->identicalTo($checkedPath))
+ ->with($checkedPath)
->willReturn($quota);
return $view;
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
index 836766b366d..b01807d5bbb 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
index e7f20fbadfa..c5c7e99c7e5 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,7 +19,7 @@ use OCP\AppFramework\Http;
*/
class DeleteTest extends RequestTestCase {
public function testBasicUpload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'asd');
@@ -29,7 +30,7 @@ class DeleteTest extends RequestTestCase {
$mount->getStorage()->unlink($mount->getInternalPath($internalPath));
// cache entry still exists
- $this->assertInstanceOf('\OCP\Files\FileInfo', $view->getFileInfo('foo.txt'));
+ $this->assertInstanceOf(\OCP\Files\FileInfo::class, $view->getFileInfo('foo.txt'));
$response = $this->request($view, $user, 'pass', 'DELETE', '/foo.txt');
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
index bec4cd9967b..34171963ef0 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,7 +20,7 @@ use OCP\Lock\ILockingProvider;
*/
class DownloadTest extends RequestTestCase {
public function testDownload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -30,7 +31,7 @@ class DownloadTest extends RequestTestCase {
}
public function testDownloadWriteLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -42,7 +43,7 @@ class DownloadTest extends RequestTestCase {
}
public function testDownloadReadLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
index 92d89d7753a..615490ddc92 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,7 +24,7 @@ use Test\Traits\EncryptionTrait;
class EncryptionMasterKeyUploadTest extends UploadTest {
use EncryptionTrait;
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
index 935ef6d9464..efa7bb54cf8 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,7 +24,7 @@ use Test\Traits\EncryptionTrait;
class EncryptionUploadTest extends UploadTest {
use EncryptionTrait;
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
index b1e68f9597b..0c53e4b1009 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
index 5f3dc6f4e32..e6fa489fb24 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
@@ -21,9 +21,7 @@ use OCP\Server;
class PartFileInRootUploadTest extends UploadTest {
protected function setUp(): void {
$config = Server::get(IConfig::class);
- $mockConfig = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $mockConfig = $this->createMock(IConfig::class);
$mockConfig->expects($this->any())
->method('getSystemValue')
->willReturnCallback(function ($key, $default) use ($config) {
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
index d02f1d76cac..404dc7fa5d7 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,6 +21,7 @@ use OCP\IRequestId;
use OCP\ITagManager;
use OCP\ITempManager;
use OCP\IUserSession;
+use OCP\L10N\IFactory;
use Psr\Log\LoggerInterface;
use Sabre\HTTP\Request;
use Test\TestCase;
@@ -29,11 +31,7 @@ use Test\Traits\UserTrait;
abstract class RequestTestCase extends TestCase {
use UserTrait;
use MountProviderTrait;
-
- /**
- * @var ServerFactory
- */
- protected $serverFactory;
+ protected ServerFactory $serverFactory;
protected function getStream($string) {
$stream = fopen('php://temp', 'r+');
@@ -52,20 +50,18 @@ abstract class RequestTestCase extends TestCase {
\OCP\Server::get(IUserSession::class),
\OCP\Server::get(IMountManager::class),
\OCP\Server::get(ITagManager::class),
- $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock(),
+ $this->createMock(IRequest::class),
\OCP\Server::get(IPreview::class),
\OCP\Server::get(IEventDispatcher::class),
- \OC::$server->getL10N('dav')
+ \OCP\Server::get(IFactory::class)->get('dav'),
);
}
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = \OCP\Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
- $this->loginAsUser($name);
+ self::loginAsUser($name);
return new View('/' . $name . '/files');
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
index f12c93468ff..08d774e56b8 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
index 60decd4c846..5c6d0f03334 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,7 +20,7 @@ use OCP\Lock\ILockingProvider;
*/
class UploadTest extends RequestTestCase {
public function testBasicUpload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$this->assertFalse($view->file_exists('foo.txt'));
@@ -35,7 +36,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWrite(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'foobar');
@@ -51,7 +52,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWriteReadLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -63,7 +64,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWriteWriteLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$this->loginAsUser($user);
diff --git a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
index 97d3ba79046..00ac5b5543f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -17,35 +18,17 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
class SharesPluginTest extends \Test\TestCase {
public const SHARETYPES_PROPERTYNAME = SharesPlugin::SHARETYPES_PROPERTYNAME;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var \OCP\Share\IManager
- */
- private $shareManager;
-
- /**
- * @var Folder
- */
- private $userFolder;
-
- /**
- * @var SharesPlugin
- */
- private $plugin;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private \OCP\Share\IManager&MockObject $shareManager;
+ private Folder&MockObject $userFolder;
+ private SharesPlugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -74,10 +57,8 @@ class SharesPluginTest extends \Test\TestCase {
/**
* @dataProvider sharesGetPropertiesDataProvider
*/
- public function testGetProperties($shareTypes): void {
- $sabreNode = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetProperties(array $shareTypes): void {
+ $sabreNode = $this->createMock(Node::class);
$sabreNode->expects($this->any())
->method('getId')
->willReturn(123);
@@ -86,9 +67,7 @@ class SharesPluginTest extends \Test\TestCase {
->willReturn('/subdir');
// node API nodes
- $node = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Folder::class);
$sabreNode->method('getNode')
->willReturn($node);
@@ -143,7 +122,7 @@ class SharesPluginTest extends \Test\TestCase {
/**
* @dataProvider sharesGetPropertiesDataProvider
*/
- public function testPreloadThenGetProperties($shareTypes): void {
+ public function testPreloadThenGetProperties(array $shareTypes): void {
$sabreNode1 = $this->createMock(File::class);
$sabreNode1->method('getId')
->willReturn(111);
@@ -182,7 +161,7 @@ class SharesPluginTest extends \Test\TestCase {
->willReturn($node2);
$dummyShares = array_map(function ($type) {
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())
->method('getShareType')
->willReturn($type);
@@ -268,7 +247,7 @@ class SharesPluginTest extends \Test\TestCase {
$this->assertEquals($shareTypes, $result[200][self::SHARETYPES_PROPERTYNAME]->getShareTypes());
}
- public function sharesGetPropertiesDataProvider() {
+ public static function sharesGetPropertiesDataProvider(): array {
return [
[[]],
[[IShare::TYPE_USER]],
@@ -287,9 +266,7 @@ class SharesPluginTest extends \Test\TestCase {
}
public function testGetPropertiesSkipChunks(): void {
- $sabreNode = $this->getMockBuilder(UploadFile::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $sabreNode = $this->createMock(UploadFile::class);
$propFind = new \Sabre\DAV\PropFind(
'/dummyPath',
diff --git a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
index 43c08a1a61c..bef508e08ca 100644
--- a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.
@@ -18,6 +19,7 @@ use OCP\ITagManager;
use OCP\ITags;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
class TagsPluginTest extends \Test\TestCase {
@@ -25,61 +27,24 @@ class TagsPluginTest extends \Test\TestCase {
public const FAVORITE_PROPERTYNAME = TagsPlugin::FAVORITE_PROPERTYNAME;
public const TAG_FAVORITE = TagsPlugin::TAG_FAVORITE;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var Tree
- */
- private $tree;
-
- /**
- * @var ITagManager
- */
- private $tagManager;
-
- /**
- * @var ITags
- */
- private $tagger;
-
- /**
- * @var IEventDispatcher
- */
- private $eventDispatcher;
-
- /**
- * @var IUserSession
- */
- private $userSession;
-
- /**
- * @var TagsPlugin
- */
- private $plugin;
+ private \Sabre\DAV\Server $server;
+ private Tree&MockObject $tree;
+ private ITagManager&MockObject $tagManager;
+ private ITags&MockObject $tagger;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserSession&MockObject $userSession;
+ private TagsPlugin $plugin;
protected function setUp(): void {
parent::setUp();
+
$this->server = new \Sabre\DAV\Server();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->tagger = $this->getMockBuilder(ITags::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->tagManager = $this->getMockBuilder(ITagManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->eventDispatcher = $this->getMockBuilder(IEventDispatcher::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
+ $this->tagger = $this->createMock(ITags::class);
+ $this->tagManager = $this->createMock(ITagManager::class);
+ $this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$user = $this->createMock(IUser::class);
- /**
- * @var IUserSession
- */
+
$this->userSession = $this->createMock(IUserSession::class);
$this->userSession->expects($this->any())
->method('getUser')
@@ -96,10 +61,8 @@ class TagsPluginTest extends \Test\TestCase {
/**
* @dataProvider tagsGetPropertiesDataProvider
*/
- public function testGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetProperties(array $tags, array $requestedProperties, array $expectedProperties): void {
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -135,16 +98,12 @@ class TagsPluginTest extends \Test\TestCase {
/**
* @dataProvider tagsGetPropertiesDataProvider
*/
- public function testPreloadThenGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node1 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testPreloadThenGetProperties(array $tags, array $requestedProperties, array $expectedProperties): void {
+ $node1 = $this->createMock(File::class);
$node1->expects($this->any())
->method('getId')
->willReturn(111);
- $node2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node2 = $this->createMock(File::class);
$node2->expects($this->any())
->method('getId')
->willReturn(222);
@@ -157,9 +116,7 @@ class TagsPluginTest extends \Test\TestCase {
$expectedCallCount = 1;
}
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -214,7 +171,7 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEquals($expectedProperties, $result);
}
- public function tagsGetPropertiesDataProvider() {
+ public static function tagsGetPropertiesDataProvider(): array {
return [
// request both, receive both
[
@@ -270,9 +227,7 @@ class TagsPluginTest extends \Test\TestCase {
}
public function testGetPropertiesSkipChunks(): void {
- $sabreNode = $this->getMockBuilder(UploadFile::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $sabreNode = $this->createMock(UploadFile::class);
$propFind = new \Sabre\DAV\PropFind(
'/dummyPath',
@@ -292,9 +247,7 @@ class TagsPluginTest extends \Test\TestCase {
public function testUpdateTags(): void {
// this test will replace the existing tags "tagremove" with "tag1" and "tag2"
// and keep "tagkeep"
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -310,12 +263,16 @@ class TagsPluginTest extends \Test\TestCase {
->willReturn([123 => ['tagkeep', 'tagremove', self::TAG_FAVORITE]]);
// then tag as tag1 and tag2
- $this->tagger->expects($this->exactly(2))
+ $calls = [
+ [123, 'tag1'],
+ [123, 'tag2'],
+ ];
+ $this->tagger->expects($this->exactly(count($calls)))
->method('tagAs')
- ->withConsecutive(
- [123, 'tag1'],
- [123, 'tag2'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// it will untag tag3
$this->tagger->expects($this->once())
@@ -339,13 +296,11 @@ class TagsPluginTest extends \Test\TestCase {
$result = $propPatch->getResult();
$this->assertEquals(200, $result[self::TAGS_PROPERTYNAME]);
- $this->assertFalse(isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::FAVORITE_PROPERTYNAME, $result);
}
public function testUpdateTagsFromScratch(): void {
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -361,12 +316,16 @@ class TagsPluginTest extends \Test\TestCase {
->willReturn([]);
// then tag as tag1 and tag2
- $this->tagger->expects($this->exactly(2))
+ $calls = [
+ [123, 'tag1'],
+ [123, 'tag2'],
+ ];
+ $this->tagger->expects($this->exactly(count($calls)))
->method('tagAs')
- ->withConsecutive(
- [123, 'tag1'],
- [123, 'tag2'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// properties to set
$propPatch = new \Sabre\DAV\PropPatch([
@@ -385,15 +344,13 @@ class TagsPluginTest extends \Test\TestCase {
$result = $propPatch->getResult();
$this->assertEquals(200, $result[self::TAGS_PROPERTYNAME]);
- $this->assertFalse(false, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::FAVORITE_PROPERTYNAME, $result);
}
public function testUpdateFav(): void {
// this test will replace the existing tags "tagremove" with "tag1" and "tag2"
// and keep "tagkeep"
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -424,8 +381,8 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEmpty($propPatch->getRemainingMutations());
$result = $propPatch->getResult();
- $this->assertFalse(false, isset($result[self::TAGS_PROPERTYNAME]));
- $this->assertEquals(200, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::TAGS_PROPERTYNAME, $result);
+ $this->assertEquals(200, $result[self::FAVORITE_PROPERTYNAME]);
// unfavorite now
// set favorite tag
@@ -449,7 +406,7 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEmpty($propPatch->getRemainingMutations());
$result = $propPatch->getResult();
- $this->assertFalse(false, isset($result[self::TAGS_PROPERTYNAME]));
- $this->assertEquals(200, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::TAGS_PROPERTYNAME, $result);
+ $this->assertEquals(200, $result[self::FAVORITE_PROPERTYNAME]);
}
}
diff --git a/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php b/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
index c7c2bf0e431..9aa0ef3a2a7 100644
--- a/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
+++ b/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
@@ -1,43 +1,33 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\BackgroundJob\GenerateBirthdayCalendarBackgroundJob;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Controller\BirthdayCalendarController;
+use OCP\AppFramework\Http\JSONResponse;
use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BirthdayCalendarControllerTest extends TestCase {
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- private $db;
-
- /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $caldav;
-
- /** @var BirthdayCalendarController|\PHPUnit\Framework\MockObject\MockObject */
- private $controller;
+ private IConfig&MockObject $config;
+ private IRequest&MockObject $request;
+ private IDBConnection&MockObject $db;
+ private IJobList&MockObject $jobList;
+ private IUserManager&MockObject $userManager;
+ private CalDavBackend&MockObject $caldav;
+ private BirthdayCalendarController $controller;
protected function setUp(): void {
parent::setUp();
@@ -74,16 +64,20 @@ class BirthdayCalendarControllerTest extends TestCase {
$closure($user3);
});
+ $calls = [
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid1']],
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid2']],
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid3']],
+ ];
$this->jobList->expects($this->exactly(3))
->method('add')
- ->withConsecutive(
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid1']],
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid2']],
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid3']],
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$response = $this->controller->enable();
- $this->assertInstanceOf('OCP\AppFramework\Http\JSONResponse', $response);
+ $this->assertInstanceOf(JSONResponse::class, $response);
}
public function testDisable(): void {
@@ -97,6 +91,6 @@ class BirthdayCalendarControllerTest extends TestCase {
->method('deleteAllBirthdayCalendars');
$response = $this->controller->disable();
- $this->assertInstanceOf('OCP\AppFramework\Http\JSONResponse', $response);
+ $this->assertInstanceOf(JSONResponse::class, $response);
}
}
diff --git a/apps/dav/tests/unit/Controller/DirectControllerTest.php b/apps/dav/tests/unit/Controller/DirectControllerTest.php
index faaf67d266b..837adde1da7 100644
--- a/apps/dav/tests/unit/Controller/DirectControllerTest.php
+++ b/apps/dav/tests/unit/Controller/DirectControllerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\Controller\DirectController;
use OCA\DAV\Db\Direct;
@@ -20,29 +20,18 @@ use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\IRequest;
-use OCP\IUrlGenerator;
+use OCP\IURLGenerator;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class DirectControllerTest extends TestCase {
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var DirectMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $directMapper;
-
- /** @var ISecureRandom|\PHPUnit\Framework\MockObject\MockObject */
- private $random;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var IUrlGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ private IRootFolder&MockObject $rootFolder;
+ private DirectMapper&MockObject $directMapper;
+ private ISecureRandom&MockObject $random;
+ private ITimeFactory&MockObject $timeFactory;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IEventDispatcher&MockObject $eventDispatcher;
private DirectController $controller;
@@ -53,7 +42,7 @@ class DirectControllerTest extends TestCase {
$this->directMapper = $this->createMock(DirectMapper::class);
$this->random = $this->createMock(ISecureRandom::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
- $this->urlGenerator = $this->createMock(IUrlGenerator::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->controller = new DirectController(
diff --git a/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php b/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
index 640c66b75e5..895a84b8404 100644
--- a/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
+++ b/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\CalDAV\InvitationResponse\InvitationResponseServer;
use OCA\DAV\Controller\InvitationResponseController;
@@ -18,24 +18,16 @@ use OCP\DB\QueryBuilder\IExpressionBuilder;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\ITip\Message;
use Test\TestCase;
class InvitationResponseControllerTest extends TestCase {
- /** @var InvitationResponseController */
- private $controller;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var InvitationResponseServer|\PHPUnit\Framework\MockObject\MockObject */
- private $responseServer;
+ private IDBConnection&MockObject $dbConnection;
+ private IRequest&MockObject $request;
+ private ITimeFactory&MockObject $timeFactory;
+ private InvitationResponseServer&MockObject $responseServer;
+ private InvitationResponseController $controller;
protected function setUp(): void {
parent::setUp();
@@ -43,9 +35,7 @@ class InvitationResponseControllerTest extends TestCase {
$this->dbConnection = $this->createMock(IDBConnection::class);
$this->request = $this->createMock(IRequest::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
- $this->responseServer = $this->getMockBuilder(InvitationResponseServer::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->responseServer = $this->createMock(InvitationResponseServer::class);
$this->controller = new InvitationResponseController(
'appName',
@@ -56,7 +46,7 @@ class InvitationResponseControllerTest extends TestCase {
);
}
- public function attendeeProvider(): array {
+ public static function attendeeProvider(): array {
return [
'local attendee' => [false],
'external attendee' => [true]
@@ -424,7 +414,7 @@ EOF;
$this->assertTrue($called);
}
- private function buildQueryExpects($token, $return, $time): void {
+ private function buildQueryExpects(string $token, ?array $return, int $time): void {
$queryBuilder = $this->createMock(IQueryBuilder::class);
$stmt = $this->createMock(IResult::class);
$expr = $this->createMock(IExpressionBuilder::class);
diff --git a/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php b/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
index bab0ef77bd0..527943e5221 100644
--- a/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
+++ b/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Service;
+namespace OCA\DAV\Tests\unit\DAV\Service;
use OCA\DAV\CalDAV\UpcomingEvent;
use OCA\DAV\CalDAV\UpcomingEventsService;
@@ -17,9 +17,8 @@ use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class UpcomingEventsControllerTest extends TestCase {
-
- private IRequest|MockObject $request;
- private UpcomingEventsService|MockObject $service;
+ private IRequest&MockObject $request;
+ private UpcomingEventsService&MockObject $service;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php b/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
index ea5450391e8..c99ebf327c8 100644
--- a/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
+++ b/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\tests\unit\DAV;
+namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\Connector\Sabre\AnonymousOptionsPlugin;
use Sabre\DAV\Auth\Backend\BasicCallBack;
@@ -14,7 +16,7 @@ use Sabre\HTTP\Sapi;
use Test\TestCase;
class AnonymousOptionsTest extends TestCase {
- private function sendRequest($method, $path, $userAgent = '') {
+ private function sendRequest(string $method, string $path, string $userAgent = '') {
$server = new Server();
$server->addPlugin(new AnonymousOptionsPlugin());
$server->addPlugin(new Plugin(new BasicCallBack(function () {
diff --git a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
index 088330cecff..23ee2b66f77 100644
--- a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
+++ b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\Files\BrowserErrorPagePlugin;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\HTTP\Response;
@@ -15,18 +17,16 @@ class BrowserErrorPagePluginTest extends \Test\TestCase {
/**
* @dataProvider providesExceptions
- * @param $expectedCode
- * @param $exception
*/
- public function test($expectedCode, $exception): void {
- /** @var BrowserErrorPagePlugin | \PHPUnit\Framework\MockObject\MockObject $plugin */
- $plugin = $this->getMockBuilder(BrowserErrorPagePlugin::class)->setMethods(['sendResponse', 'generateBody'])->getMock();
+ public function test(int $expectedCode, \Throwable $exception): void {
+ /** @var BrowserErrorPagePlugin&MockObject $plugin */
+ $plugin = $this->getMockBuilder(BrowserErrorPagePlugin::class)->onlyMethods(['sendResponse', 'generateBody'])->getMock();
$plugin->expects($this->once())->method('generateBody')->willReturn(':boom:');
$plugin->expects($this->once())->method('sendResponse');
- /** @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject $server */
- $server = $this->getMockBuilder('Sabre\DAV\Server')->disableOriginalConstructor()->getMock();
+ /** @var \Sabre\DAV\Server&MockObject $server */
+ $server = $this->createMock('Sabre\DAV\Server');
$server->expects($this->once())->method('on');
- $httpResponse = $this->getMockBuilder(Response::class)->disableOriginalConstructor()->getMock();
+ $httpResponse = $this->createMock(Response::class);
$httpResponse->expects($this->once())->method('addHeaders');
$httpResponse->expects($this->once())->method('setStatus')->with($expectedCode);
$httpResponse->expects($this->once())->method('setBody')->with(':boom:');
@@ -35,7 +35,7 @@ class BrowserErrorPagePluginTest extends \Test\TestCase {
$plugin->logException($exception);
}
- public function providesExceptions() {
+ public static function providesExceptions(): array {
return [
[ 404, new NotFound()],
[ 500, new \RuntimeException()],
diff --git a/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
index 5590e8c1ff0..7c77b3fcb28 100644
--- a/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
+++ b/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
@@ -1,10 +1,11 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\DAV;
+namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\DefaultCalendarValidator;
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\CustomPropertiesBackend;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\PropFind;
use Sabre\DAV\PropPatch;
@@ -28,23 +30,12 @@ use Test\TestCase;
class CustomPropertiesBackendTest extends TestCase {
private const BASE_URI = '/remote.php/dav/';
- /** @var Server | \PHPUnit\Framework\MockObject\MockObject */
- private $server;
-
- /** @var Tree | \PHPUnit\Framework\MockObject\MockObject */
- private $tree;
-
- /** @var IDBConnection */
- private $dbConnection;
-
- /** @var IUser | \PHPUnit\Framework\MockObject\MockObject */
- private $user;
-
- /** @var CustomPropertiesBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @property DefaultCalendarValidator | \PHPUnit\Framework\MockObject\MockObject */
- private $defaultCalendarValidator;
+ private Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private IDBConnection $dbConnection;
+ private IUser&MockObject $user;
+ private DefaultCalendarValidator&MockObject $defaultCalendarValidator;
+ private CustomPropertiesBackend $backend;
protected function setUp(): void {
parent::setUp();
@@ -85,13 +76,13 @@ class CustomPropertiesBackendTest extends TestCase {
}
}
- protected function insertProps(string $user, string $path, array $props) {
+ protected function insertProps(string $user, string $path, array $props): void {
foreach ($props as $name => $value) {
$this->insertProp($user, $path, $name, $value);
}
}
- protected function insertProp(string $user, string $path, string $name, mixed $value) {
+ protected function insertProp(string $user, string $path, string $name, mixed $value): void {
$type = CustomPropertiesBackend::PROPERTY_TYPE_STRING;
if ($value instanceof Href) {
$value = $value->getHref();
@@ -110,7 +101,7 @@ class CustomPropertiesBackendTest extends TestCase {
$query->execute();
}
- protected function getProps(string $user, string $path) {
+ protected function getProps(string $user, string $path): array {
$query = $this->dbConnection->getQueryBuilder();
$query->select('propertyname', 'propertyvalue', 'valuetype')
->from('properties')
@@ -245,7 +236,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals($props, $setProps);
}
- public function propFindPrincipalScheduleDefaultCalendarProviderUrlProvider(): array {
+ public static function propFindPrincipalScheduleDefaultCalendarProviderUrlProvider(): array {
// [ user, nodes, existingProps, requestedProps, returnedProps ]
return [
[ // Exists
@@ -373,7 +364,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals($result, $storedProps);
}
- public function propPatchProvider() {
+ public static function propPatchProvider(): array {
$longPath = str_repeat('long_path', 100);
return [
['foo_bar_path_1337', [], ['{DAV:}displayname' => 'anything'], ['{DAV:}displayname' => 'anything']],
@@ -436,7 +427,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals([], $this->getProps('dummy_user_42', $path));
}
- public function deleteProvider() {
+ public static function deleteProvider(): array {
return [
['foo_bar_path_1337'],
[str_repeat('long_path', 100)]
@@ -453,7 +444,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals(['foo' => 'bar'], $this->getProps('dummy_user_42', $target));
}
- public function moveProvider() {
+ public static function moveProvider(): array {
return [
['foo_bar_path_1337', 'foo_bar_path_7333'],
[str_repeat('long_path1', 100), str_repeat('long_path2', 100)]
@@ -475,5 +466,4 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertInstanceOf(\Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp::class, $decodeValue);
$this->assertEquals('opaque', $decodeValue->getValue());
}
-
}
diff --git a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
index bfc4c5b2493..2ede450c36b 100644
--- a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
+++ b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,20 +20,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropPatch;
class GroupPrincipalTest extends \Test\TestCase {
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IGroupManager | MockObject */
- private $groupManager;
-
- /** @var IUserSession | MockObject */
- private $userSession;
-
- /** @var IManager | MockObject */
- private $shareManager;
-
- /** @var GroupPrincipalBackend */
- private $connector;
+ private IConfig&MockObject $config;
+ private IGroupManager&MockObject $groupManager;
+ private IUserSession&MockObject $userSession;
+ private IManager&MockObject $shareManager;
+ private GroupPrincipalBackend $connector;
protected function setUp(): void {
$this->groupManager = $this->createMock(IGroupManager::class);
@@ -201,11 +194,6 @@ class GroupPrincipalTest extends \Test\TestCase {
/**
* @dataProvider searchPrincipalsDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $test
- * @param array $result
*/
public function testSearchPrincipals(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
@@ -264,7 +252,7 @@ class GroupPrincipalTest extends \Test\TestCase {
['{DAV:}displayname' => 'Foo'], $test));
}
- public function searchPrincipalsDataProvider() {
+ public static function searchPrincipalsDataProvider(): array {
return [
[true, true, false, 'allof', ['principals/groups/group1', 'principals/groups/group2', 'principals/groups/group3', 'principals/groups/group4', 'principals/groups/group5']],
[true, true, false, 'anyof', ['principals/groups/group1', 'principals/groups/group2', 'principals/groups/group3', 'principals/groups/group4', 'principals/groups/group5']],
@@ -279,11 +267,6 @@ class GroupPrincipalTest extends \Test\TestCase {
/**
* @dataProvider findByUriDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $findUri
- * @param string|null $result
*/
public function testFindByUri(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $findUri, ?string $result): void {
$this->shareManager->expects($this->once())
@@ -320,7 +303,7 @@ class GroupPrincipalTest extends \Test\TestCase {
$this->assertEquals($result, $this->connector->findByUri($findUri, 'principals/groups'));
}
- public function findByUriDataProvider() {
+ public static function findByUriDataProvider(): array {
return [
[false, false, false, 'principal:principals/groups/group1', null],
[false, false, false, 'principal:principals/groups/group3', null],
@@ -337,10 +320,7 @@ class GroupPrincipalTest extends \Test\TestCase {
];
}
- /**
- * @return Group|MockObject
- */
- private function mockGroup($gid) {
+ private function mockGroup(string $gid): Group&MockObject {
$fooGroup = $this->createMock(Group::class);
$fooGroup
->expects($this->exactly(1))
diff --git a/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php b/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
index a0876d8e483..420f0a0d937 100644
--- a/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
+++ b/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
@@ -51,9 +51,7 @@ class UserEventsListenerTest extends TestCase {
}
public function test(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->defaults->expects($this->once())->method('getColorPrimary')->willReturn('#745bca');
@@ -76,9 +74,7 @@ class UserEventsListenerTest extends TestCase {
}
public function testWithExisting(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->calDavBackend->expects($this->once())->method('getCalendarsForUserCount')->willReturn(1);
@@ -91,9 +87,7 @@ class UserEventsListenerTest extends TestCase {
}
public function testWithBirthdayCalendar(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->defaults->expects($this->once())->method('getColorPrimary')->willReturn('#745bca');
@@ -116,9 +110,7 @@ class UserEventsListenerTest extends TestCase {
}
public function testDeleteCalendar(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->syncService->expects($this->once())
diff --git a/apps/dav/tests/unit/DAV/Sharing/BackendTest.php b/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
index dd2681d149f..556a623a73f 100644
--- a/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
+++ b/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
@@ -24,14 +24,14 @@ use Test\TestCase;
class BackendTest extends TestCase {
- private IDBConnection|MockObject $db;
- private IUserManager|MockObject $userManager;
- private IGroupManager|MockObject $groupManager;
- private MockObject|Principal $principalBackend;
- private MockObject|ICache $shareCache;
- private LoggerInterface|MockObject $logger;
- private MockObject|ICacheFactory $cacheFactory;
- private Service|MockObject $calendarService;
+ private IDBConnection&MockObject $db;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private Principal&MockObject $principalBackend;
+ private ICache&MockObject $shareCache;
+ private LoggerInterface&MockObject $logger;
+ private ICacheFactory&MockObject $cacheFactory;
+ private Service&MockObject $calendarService;
private CalendarSharingBackend $backend;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
index 9c6950f19e8..7a88f7cc5dd 100644
--- a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
+++ b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\Sharing\IShareable;
use OCA\DAV\DAV\Sharing\Plugin;
use OCP\IConfig;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -19,32 +21,24 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var IShareable | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
+ private Plugin $plugin;
+ private Server $server;
+ private IShareable&MockObject $book;
protected function setUp(): void {
parent::setUp();
- /** @var Auth | \PHPUnit\Framework\MockObject\MockObject $authBackend */
- $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock();
+ $authBackend = $this->createMock(Auth::class);
$authBackend->method('isDavAuthenticated')->willReturn(true);
- /** @var IRequest $request */
- $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
+ $request = $this->createMock(IRequest::class);
$config = $this->createMock(IConfig::class);
$this->plugin = new Plugin($authBackend, $request, $config);
$root = new SimpleCollection('root');
$this->server = new \Sabre\DAV\Server($root);
/** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(IShareable::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->book = $this->createMock(IShareable::class);
$this->book->method('getName')->willReturn('addressbook1.vcf');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
diff --git a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
index 32916804080..127de1ede0a 100644
--- a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,22 +9,21 @@
namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\DAV\SystemPrincipalBackend;
+use Sabre\DAV\Exception;
use Test\TestCase;
class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrefix
- * @param $expected
- * @param $prefix
*/
- public function testGetPrincipalsByPrefix($expected, $prefix): void {
+ public function testGetPrincipalsByPrefix(array $expected, string $prefix): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getPrincipalsByPrefix($prefix);
$this->assertEquals($expected, $result);
}
- public function providesPrefix() {
+ public static function providesPrefix(): array {
return [
[[], ''],
[[[
@@ -40,16 +40,14 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPath
- * @param $expected
- * @param $path
*/
- public function testGetPrincipalByPath($expected, $path): void {
+ public function testGetPrincipalByPath(?array $expected, string $path): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getPrincipalByPath($path);
$this->assertEquals($expected, $result);
}
- public function providesPath() {
+ public static function providesPath(): array {
return [
[null, ''],
[null, 'principals'],
@@ -63,28 +61,22 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrincipalForGetGroupMemberSet
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
*/
- public function testGetGroupMemberSetExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ public function testGetGroupMemberSetExceptional(?string $principal): void {
+ $this->expectException(Exception::class);
$this->expectExceptionMessage('Principal not found');
$backend = new SystemPrincipalBackend();
$backend->getGroupMemberSet($principal);
}
- public function providesPrincipalForGetGroupMemberSet() {
+ public static function providesPrincipalForGetGroupMemberSet(): array {
return [
[null],
['principals/system'],
];
}
- /**
- * @throws \Sabre\DAV\Exception
- */
public function testGetGroupMemberSet(): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getGroupMemberSet('principals/system/system');
@@ -93,27 +85,21 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrincipalForGetGroupMembership
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
*/
- public function testGetGroupMembershipExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ public function testGetGroupMembershipExceptional(string $principal): void {
+ $this->expectException(Exception::class);
$this->expectExceptionMessage('Principal not found');
$backend = new SystemPrincipalBackend();
$backend->getGroupMembership($principal);
}
- public function providesPrincipalForGetGroupMembership() {
+ public static function providesPrincipalForGetGroupMembership(): array {
return [
['principals/system/a'],
];
}
- /**
- * @throws \Sabre\DAV\Exception
- */
public function testGetGroupMembership(): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getGroupMembership('principals/system/system');
diff --git a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
index 7a4828dd2de..9227d34b30f 100644
--- a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
+++ b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2019 ownCloud GmbH
@@ -20,30 +21,29 @@ use OCP\Files\Storage\IStorage;
use OCP\IUser;
use OCP\Share\IAttributes;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Test\TestCase;
class ViewOnlyPluginTest extends TestCase {
-
+ private Tree&MockObject $tree;
+ private RequestInterface&MockObject $request;
+ private Folder&MockObject $userFolder;
private ViewOnlyPlugin $plugin;
- /** @var Tree | \PHPUnit\Framework\MockObject\MockObject */
- private $tree;
- /** @var RequestInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var Folder | \PHPUnit\Framework\MockObject\MockObject */
- private $userFolder;
public function setUp(): void {
+ parent::setUp();
+
$this->userFolder = $this->createMock(Folder::class);
- $this->plugin = new ViewOnlyPlugin(
- $this->userFolder,
- );
$this->request = $this->createMock(RequestInterface::class);
$this->tree = $this->createMock(Tree::class);
-
$server = $this->createMock(Server::class);
+
+ $this->plugin = new ViewOnlyPlugin(
+ $this->userFolder,
+ );
$server->tree = $this->tree;
$this->plugin->initialize($server);
@@ -71,7 +71,7 @@ class ViewOnlyPluginTest extends TestCase {
$this->assertTrue($this->plugin->checkViewOnly($this->request));
}
- public function providesDataForCanGet(): array {
+ public static function providesDataForCanGet(): array {
return [
// has attribute permissions-download enabled - can get file
[false, true, true],
diff --git a/apps/dav/tests/unit/Direct/DirectFileTest.php b/apps/dav/tests/unit/Direct/DirectFileTest.php
index 07d19807ef0..f6f0f49fa8c 100644
--- a/apps/dav/tests/unit/Direct/DirectFileTest.php
+++ b/apps/dav/tests/unit/Direct/DirectFileTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Direct;
+namespace OCA\DAV\Tests\unit\Direct;
use OCA\DAV\Db\Direct;
use OCA\DAV\Direct\DirectFile;
@@ -14,28 +14,17 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
use Test\TestCase;
class DirectFileTest extends TestCase {
-
- /** @var Direct */
- private $direct;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
- private $userFolder;
-
- /** @var File|\PHPUnit\Framework\MockObject\MockObject */
- private $file;
-
- /** @var DirectFile */
- private $directFile;
-
- /** @var IEventDispatcher */
- private $eventDispatcher;
+ private Direct $direct;
+ private IRootFolder&MockObject $rootFolder;
+ private Folder&MockObject $userFolder;
+ private File&MockObject $file;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private DirectFile $directFile;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Direct/DirectHomeTest.php b/apps/dav/tests/unit/Direct/DirectHomeTest.php
index 06fb48a64d8..94c82c2b7c5 100644
--- a/apps/dav/tests/unit/Direct/DirectHomeTest.php
+++ b/apps/dav/tests/unit/Direct/DirectHomeTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Direct;
+namespace OCA\DAV\Tests\unit\Direct;
use OCA\DAV\Db\Direct;
use OCA\DAV\Db\DirectMapper;
@@ -18,33 +18,20 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\IRequest;
use OCP\Security\Bruteforce\IThrottler;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
use Test\TestCase;
class DirectHomeTest extends TestCase {
-
- /** @var DirectMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $directMapper;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var IThrottler|\PHPUnit\Framework\MockObject\MockObject */
- private $throttler;
-
- /** @var IRequest */
- private $request;
-
- /** @var DirectHome */
- private $directHome;
-
- /** @var IEventDispatcher */
- private $eventDispatcher;
+ private DirectMapper&MockObject $directMapper;
+ private IRootFolder&MockObject $rootFolder;
+ private ITimeFactory&MockObject $timeFactory;
+ private IThrottler&MockObject $throttler;
+ private IRequest&MockObject $request;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private DirectHome $directHome;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Files/FileSearchBackendTest.php b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
index aaa3d8c147e..ce56dde5fbd 100644
--- a/apps/dav/tests/unit/Files/FileSearchBackendTest.php
+++ b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
@@ -1,10 +1,12 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Files;
+namespace OCA\DAV\Tests\unit\Files;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
@@ -23,42 +25,26 @@ use OCP\Files\Search\ISearchQuery;
use OCP\FilesMetadata\IFilesMetadataManager;
use OCP\IUser;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use SearchDAV\Backend\SearchPropertyDefinition;
use SearchDAV\Query\Limit;
+use SearchDAV\Query\Literal;
use SearchDAV\Query\Operator;
use SearchDAV\Query\Query;
+use SearchDAV\Query\Scope;
use Test\TestCase;
class FileSearchBackendTest extends TestCase {
- /** @var ObjectTree|\PHPUnit\Framework\MockObject\MockObject */
- private $tree;
-
- /** @var IUser */
- private $user;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
-
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $view;
-
- /** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
- private $searchFolder;
-
- /** @var FileSearchBackend */
- private $search;
-
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject */
- private $davFolder;
+ private ObjectTree&MockObject $tree;
+ private IUser&MockObject $user;
+ private IRootFolder&MockObject $rootFolder;
+ private IManager&MockObject $shareManager;
+ private View&MockObject $view;
+ private Folder&MockObject $searchFolder;
+ private Directory&MockObject $davFolder;
+ private FileSearchBackend $search;
protected function setUp(): void {
- if (PHP_VERSION_ID >= 80400) {
- $this->markTestSkipped('SearchDAV is not yet PHP 8.4 compatible');
- }
-
parent::setUp();
$this->user = $this->createMock(IUser::class);
@@ -66,11 +52,13 @@ class FileSearchBackendTest extends TestCase {
->method('getUID')
->willReturn('test');
- $this->tree = $this->getMockBuilder(ObjectTree::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $this->tree = $this->createMock(ObjectTree::class);
$this->view = $this->createMock(View::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->searchFolder = $this->createMock(Folder::class);
+ $fileInfo = $this->createMock(FileInfo::class);
+ $this->davFolder = $this->createMock(Directory::class);
$this->view->expects($this->any())
->method('getRoot')
@@ -80,16 +68,6 @@ class FileSearchBackendTest extends TestCase {
->method('getRelativePath')
->willReturnArgument(0);
- $this->rootFolder = $this->createMock(IRootFolder::class);
-
- $this->shareManager = $this->createMock(IManager::class);
-
- $this->searchFolder = $this->createMock(Folder::class);
-
- $fileInfo = $this->createMock(FileInfo::class);
-
- $this->davFolder = $this->createMock(Directory::class);
-
$this->davFolder->expects($this->any())
->method('getFileInfo')
->willReturn($fileInfo);
@@ -263,8 +241,8 @@ class FileSearchBackendTest extends TestCase {
$this->search->search($query);
}
- private function getBasicQuery($type, $property, $value = null) {
- $scope = new \SearchDAV\Query\Scope('/', 'infinite');
+ private function getBasicQuery(string $type, string $property, int|string|null $value = null) {
+ $scope = new Scope('/', 'infinite');
$scope->path = '/';
$from = [$scope];
$orderBy = [];
@@ -272,12 +250,12 @@ class FileSearchBackendTest extends TestCase {
if (is_null($value)) {
$where = new Operator(
$type,
- [new \SearchDAV\Query\Literal($property)]
+ [new Literal($property)]
);
} else {
$where = new Operator(
$type,
- [new SearchPropertyDefinition($property, true, true, true), new \SearchDAV\Query\Literal($value)]
+ [new SearchPropertyDefinition($property, true, true, true), new Literal($value)]
);
}
$limit = new Limit();
@@ -350,11 +328,11 @@ class FileSearchBackendTest extends TestCase {
[
new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new \SearchDAV\Query\Literal('image/png')]
+ [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new Literal('image/png')]
),
new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition(FilesPlugin::OWNER_ID_PROPERTYNAME, true, true, true), new \SearchDAV\Query\Literal($this->user->getUID())]
+ [new SearchPropertyDefinition(FilesPlugin::OWNER_ID_PROPERTYNAME, true, true, true), new Literal($this->user->getUID())]
),
]
);
@@ -383,7 +361,7 @@ class FileSearchBackendTest extends TestCase {
$innerOperator = new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new \SearchDAV\Query\Literal('image/png')]
+ [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new Literal('image/png')]
);
// 5 child operators
$level1Operator = new Operator(
diff --git a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
index 40880bdca9c..dc0e884f07c 100644
--- a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
+++ b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
@@ -1,10 +1,12 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\unit\DAV;
+namespace OCA\DAV\Tests\unit\Files;
use OCA\DAV\BulkUpload\MultipartRequestParser;
use PHPUnit\Framework\MockObject\MockObject;
@@ -17,10 +19,11 @@ class MultipartRequestParserTest extends TestCase {
protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
+ parent::setUp();
$this->logger = $this->createMock(LoggerInterface::class);
}
- private function getValidBodyObject() {
+ private static function getValidBodyObject(): array {
return [
[
'headers' => [
@@ -99,7 +102,7 @@ class MultipartRequestParserTest extends TestCase {
* - valid file path
*/
public function testValidRequest(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser($bodyObject);
@@ -122,7 +125,7 @@ class MultipartRequestParserTest extends TestCase {
* - valid file path
*/
public function testValidRequestWithMd5(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
$multipartParser = $this->getMultipartParser($bodyObject);
@@ -140,7 +143,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with invalid hash.
*/
public function testInvalidHash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['OC-Checksum'] = 'md5:f2377b4d911f7ec46325fe603c3af03';
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser(
@@ -155,7 +158,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with invalid md5 hash.
*/
public function testInvalidMd5Hash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
$bodyObject['0']['headers']['X-File-MD5'] = 'f2377b4d911f7ec46325fe603c3af03';
$multipartParser = $this->getMultipartParser(
@@ -170,7 +173,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null hash headers.
*/
public function testNullHash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser(
@@ -185,7 +188,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null Content-Length.
*/
public function testNullContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['Content-Length']);
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -199,7 +202,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a lower Content-Length.
*/
public function testLowerContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['Content-Length'] = 6;
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -213,7 +216,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a higher Content-Length.
*/
public function testHigherContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['Content-Length'] = 8;
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -227,7 +230,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with wrong boundary in body.
*/
public function testWrongBoundary(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary=boundary_poiuytreza']
@@ -241,7 +244,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with no boundary in request headers.
*/
public function testNoBoundaryInHeader(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Error while parsing boundary in Content-Type header.');
$this->getMultipartParser(
$bodyObject,
@@ -253,7 +256,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with no boundary in the request's headers.
*/
public function testNoBoundaryInBody(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary=boundary_azertyuiop'],
@@ -268,7 +271,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a boundary with quotes in the request's headers.
*/
public function testBoundaryWithQuotes(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary="boundary_azertyuiop"'],
@@ -284,7 +287,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a wrong Content-Type in the request's headers.
*/
public function testWrongContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Content-Type must be multipart/related');
$this->getMultipartParser(
$bodyObject,
@@ -296,7 +299,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a wrong key after the content type in the request's headers.
*/
public function testWrongKeyInContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Boundary is invalid');
$this->getMultipartParser(
$bodyObject,
@@ -308,7 +311,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null Content-Type in the request's headers.
*/
public function testNullContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Content-Type can not be null');
$this->getMultipartParser(
$bodyObject,
diff --git a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
index 16891ced3d0..545bea9a406 100644
--- a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
+++ b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Files\Sharing;
+namespace OCA\DAV\Tests\unit\Files\Sharing;
use OCA\DAV\Files\Sharing\FilesDropPlugin;
use OCP\Files\Folder;
@@ -205,7 +207,7 @@ class FilesDropPluginTest extends TestCase {
$this->request->method('getHeader')
->with('X-NC-Nickname')
->willReturn('nickname');
-
+
$this->request->method('getPath')
->willReturn('/files/token/folder/subfolder/file.txt');
$this->request->method('getBaseUrl')
diff --git a/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php b/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
index 78769c7fb47..7bd7bdc2167 100644
--- a/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
+++ b/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use OCA\DAV\CalDAV\Activity\Backend as ActivityBackend;
use OCA\DAV\CalDAV\Activity\Provider\Event;
@@ -20,10 +20,8 @@ use Test\TestCase;
class ActivityUpdaterListenerTest extends TestCase {
- /** @var ActivityBackend|MockObject */
- private $activityBackend;
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private ActivityBackend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private ActivityUpdaterListener $listener;
protected function setUp(): void {
@@ -55,7 +53,7 @@ class ActivityUpdaterListenerTest extends TestCase {
$this->listener->handle($event);
}
- public function dataForTestHandleCalendarObjectDeletedEvent(): array {
+ public static function dataForTestHandleCalendarObjectDeletedEvent(): array {
return [
[1, [], [], [], true],
[1, [], [], ['{' . SharingPlugin::NS_NEXTCLOUD . '}deleted-at' => 120], false],
@@ -77,7 +75,7 @@ class ActivityUpdaterListenerTest extends TestCase {
$this->listener->handle($event);
}
- public function dataForTestHandleCalendarDeletedEvent(): array {
+ public static function dataForTestHandleCalendarDeletedEvent(): array {
return [
[1, [], [], true],
[1, ['{' . SharingPlugin::NS_NEXTCLOUD . '}deleted-at' => 120], [], false],
diff --git a/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php b/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
index 96d8514da41..dc3dce8a62f 100644
--- a/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
+++ b/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
@@ -23,24 +23,12 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarContactInteractionListenerTest extends TestCase {
-
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var Principal|MockObject */
- private $principalConnector;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
- /** @var IMailer|MockObject */
- private $mailer;
-
- /** @var CalendarContactInteractionListener */
- private $listener;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserSession&MockObject $userSession;
+ private Principal&MockObject $principalConnector;
+ private LoggerInterface&MockObject $logger;
+ private IMailer&MockObject $mailer;
+ private CalendarContactInteractionListener $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php b/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
index a21d3a5e928..971d113b742 100644
--- a/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
+++ b/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use DateTimeImmutable;
use InvalidArgumentException;
@@ -27,7 +27,6 @@ use OCP\User\Events\OutOfOfficeChangedEvent;
use OCP\User\Events\OutOfOfficeClearedEvent;
use OCP\User\Events\OutOfOfficeScheduledEvent;
use OCP\User\IOutOfOfficeData;
-use OCP\UserStatus\IManager;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\NotFound;
@@ -42,11 +41,10 @@ use Test\TestCase;
*/
class OutOfOfficeListenerTest extends TestCase {
- private ServerFactory|MockObject $serverFactory;
- private IConfig|MockObject $appConfig;
- private LoggerInterface|MockObject $loggerInterface;
- private MockObject|TimezoneService $timezoneService;
- private IManager|MockObject $manager;
+ private ServerFactory&MockObject $serverFactory;
+ private IConfig&MockObject $appConfig;
+ private LoggerInterface&MockObject $loggerInterface;
+ private TimezoneService&MockObject $timezoneService;
private OutOfOfficeListener $listener;
protected function setUp(): void {
@@ -56,14 +54,12 @@ class OutOfOfficeListenerTest extends TestCase {
$this->appConfig = $this->createMock(IConfig::class);
$this->timezoneService = $this->createMock(TimezoneService::class);
$this->loggerInterface = $this->createMock(LoggerInterface::class);
- $this->manager = $this->createMock(IManager::class);
$this->listener = new OutOfOfficeListener(
$this->serverFactory,
$this->appConfig,
$this->timezoneService,
$this->loggerInterface,
- $this->manager
);
}
@@ -453,8 +449,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getPlugin')
->with('caldav')
->willReturn($caldavPlugin);
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -483,8 +477,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getNodeForPath')
->with('/home/calendar')
->willThrowException(new NotFound('nope'));
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -522,8 +514,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getChild')
->with('personal-1')
->willThrowException(new NotFound('nope'));
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -565,8 +555,6 @@ class OutOfOfficeListenerTest extends TestCase {
$calendar->expects(self::once())
->method('getChild')
->willThrowException(new NotFound());
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
diff --git a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
index be2c64c47a4..1852d2709c1 100644
--- a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
+++ b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
@@ -1,15 +1,18 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Migration;
+namespace OCA\DAV\Tests\unit\DAV\Migration;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Migration\CalDAVRemoveEmptyValue;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\VObject\InvalidDataException;
use Test\TestCase;
@@ -21,18 +24,10 @@ use Test\TestCase;
* @group DB
*/
class CalDAVRemoveEmptyValueTest extends TestCase {
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var IOutput|\PHPUnit\Framework\MockObject\MockObject */
- private $output;
-
- /** @var string */
- private $invalid = 'BEGIN:VCALENDAR
+ private LoggerInterface&MockObject $logger;
+ private CalDavBackend&MockObject $backend;
+ private IOutput&MockObject $output;
+ private string $invalid = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.11.2//EN
CALSCALE:GREGORIAN
@@ -52,8 +47,7 @@ CREATED;VALUE=:20151214T091032Z
END:VEVENT
END:VCALENDAR';
- /** @var string */
- private $valid = 'BEGIN:VCALENDAR
+ private string $valid = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.11.2//EN
CALSCALE:GREGORIAN
@@ -82,14 +76,14 @@ END:VCALENDAR';
}
public function testRunAllValid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -106,14 +100,14 @@ END:VCALENDAR';
}
public function testRunInvalid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -149,14 +143,14 @@ END:VCALENDAR';
}
public function testRunValid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -191,14 +185,14 @@ END:VCALENDAR';
}
public function testRunStillInvalid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
diff --git a/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php b/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
index bbecd0607b4..667d2e39d3a 100644
--- a/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
+++ b/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Migration;
+namespace OCA\DAV\Tests\unit\Migration;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\Migration\CreateSystemAddressBookStep;
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
class CreateSystemAddressBookStepTest extends TestCase {
- private SyncService|MockObject $syncService;
+ private SyncService&MockObject $syncService;
private CreateSystemAddressBookStep $step;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php b/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
index bf4c60b3cf1..73d9c1efd29 100644
--- a/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
+++ b/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,17 +14,13 @@ use OCP\DB\IResult;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RefreshWebcalJobRegistrarTest extends TestCase {
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $db;
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var RefreshWebcalJobRegistrar */
- private $migration;
+ private IDBConnection&MockObject $db;
+ private IJobList&MockObject $jobList;
+ private RefreshWebcalJobRegistrar $migration;
protected function setUp(): void {
parent::setUp();
@@ -80,35 +78,37 @@ class RefreshWebcalJobRegistrarTest extends TestCase {
$this->jobList->expects($this->exactly(3))
->method('has')
- ->withConsecutive(
+ ->willReturnMap([
[RefreshWebcalJob::class, [
'principaluri' => 'foo1',
'uri' => 'bar1',
- ]],
+ ], false],
[RefreshWebcalJob::class, [
'principaluri' => 'foo2',
'uri' => 'bar2',
- ]],
+ ], true ],
[RefreshWebcalJob::class, [
'principaluri' => 'foo3',
'uri' => 'bar3',
- ]])
- ->willReturnOnConsecutiveCalls(
- false,
- true,
- false,
- );
+ ], false],
+ ]);
+
+ $calls = [
+ [RefreshWebcalJob::class, [
+ 'principaluri' => 'foo1',
+ 'uri' => 'bar1',
+ ]],
+ [RefreshWebcalJob::class, [
+ 'principaluri' => 'foo3',
+ 'uri' => 'bar3',
+ ]]
+ ];
$this->jobList->expects($this->exactly(2))
->method('add')
- ->withConsecutive(
- [RefreshWebcalJob::class, [
- 'principaluri' => 'foo1',
- 'uri' => 'bar1',
- ]],
- [RefreshWebcalJob::class, [
- 'principaluri' => 'foo3',
- 'uri' => 'bar3',
- ]]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$output->expects($this->once())
->method('info')
diff --git a/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php b/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
index e2ac45526d2..6f681badb8b 100644
--- a/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
+++ b/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,18 +12,13 @@ use OCA\DAV\Migration\RegenerateBirthdayCalendars;
use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\Migration\IOutput;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RegenerateBirthdayCalendarsTest extends TestCase {
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
-
- /** @var RegenerateBirthdayCalendars */
- private $migration;
+ private IJobList&MockObject $jobList;
+ private IConfig&MockObject $config;
+ private RegenerateBirthdayCalendars $migration;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php b/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
index a3daf1c918a..0a646e91602 100644
--- a/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
+++ b/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
@@ -22,23 +22,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
- /**
- * @var IDBConnection|MockObject
- */
- private $dbConnection;
- /**
- * @var IUserManager|MockObject
- */
- private $userManager;
-
- /**
- * @var IOutput|MockObject
- */
- private $output;
- /**
- * @var RemoveDeletedUsersCalendarSubscriptions
- */
- private $migration;
+ private IDBConnection&MockObject $dbConnection;
+ private IUserManager&MockObject $userManager;
+ private IOutput&MockObject $output;
+ private RemoveDeletedUsersCalendarSubscriptions $migration;
protected function setUp(): void {
@@ -60,10 +47,6 @@ class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
/**
* @dataProvider dataTestRun
- * @param array $subscriptions
- * @param array $userExists
- * @param int $deletions
- * @throws \Exception
*/
public function testRun(array $subscriptions, array $userExists, int $deletions): void {
$qb = $this->createMock(IQueryBuilder::class);
@@ -132,21 +115,28 @@ class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
$this->migration->run($this->output);
}
- public function dataTestRun(): array {
+ public static function dataTestRun(): array {
return [
[[], [], 0],
- [[[
- 'id' => 1,
- 'principaluri' => 'users/principals/foo1',
- ],
+ [
[
- 'id' => 2,
- 'principaluri' => 'users/principals/bar1',
+ [
+ 'id' => 1,
+ 'principaluri' => 'users/principals/foo1',
+ ],
+ [
+ 'id' => 2,
+ 'principaluri' => 'users/principals/bar1',
+ ],
+ [
+ 'id' => 3,
+ 'principaluri' => 'users/principals/bar1',
+ ],
+ [],
],
- [
- 'id' => 3,
- 'principaluri' => 'users/principals/bar1',
- ]], ['foo1' => true, 'bar1' => false], 2]
+ ['foo1' => true, 'bar1' => false],
+ 2
+ ],
];
}
}
diff --git a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
index 0979aff8a81..53de908ca27 100644
--- a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
+++ b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,15 +9,13 @@ namespace OCA\DAV\Tests\unit\Provisioning\Apple;
use OCA\DAV\Provisioning\Apple\AppleProvisioningNode;
use OCP\AppFramework\Utility\ITimeFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropPatch;
use Test\TestCase;
class AppleProvisioningNodeTest extends TestCase {
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var AppleProvisioningNode */
- private $node;
+ private ITimeFactory&MockObject $timeFactory;
+ private AppleProvisioningNode $node;
protected function setUp(): void {
parent::setUp();
@@ -28,7 +28,6 @@ class AppleProvisioningNodeTest extends TestCase {
$this->assertEquals('apple-provisioning.mobileconfig', $this->node->getName());
}
-
public function testSetName(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->expectExceptionMessage('Renaming apple-provisioning.mobileconfig is forbidden');
diff --git a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
index dbb399ea7a6..ba44efe7421 100644
--- a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
+++ b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,40 +14,27 @@ use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\DAV\Server;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class AppleProvisioningPluginTest extends TestCase {
- /** @var \Sabre\DAV\Server|\PHPUnit\Framework\MockObject\MockObject */
- protected $server;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
-
- /** @var ThemingDefaults|\PHPUnit\Framework\MockObject\MockObject */
- protected $themingDefaults;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10n;
-
- /** @var \Sabre\HTTP\RequestInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $sabreRequest;
-
- /** @var \Sabre\HTTP\ResponseInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $sabreResponse;
-
- /** @var AppleProvisioningPlugin */
- protected $plugin;
+ protected Server&MockObject $server;
+ protected IUserSession&MockObject $userSession;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected ThemingDefaults&MockObject $themingDefaults;
+ protected IRequest&MockObject $request;
+ protected IL10N&MockObject $l10n;
+ protected RequestInterface&MockObject $sabreRequest;
+ protected ResponseInterface&MockObject $sabreResponse;
+ protected AppleProvisioningPlugin $plugin;
protected function setUp(): void {
parent::setUp();
- $this->server = $this->createMock(\Sabre\DAV\Server::class);
+ $this->server = $this->createMock(Server::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
@@ -62,12 +51,12 @@ class AppleProvisioningPluginTest extends TestCase {
}
);
- $this->sabreRequest = $this->createMock(\Sabre\HTTP\RequestInterface::class);
- $this->sabreResponse = $this->createMock(\Sabre\HTTP\ResponseInterface::class);
+ $this->sabreRequest = $this->createMock(RequestInterface::class);
+ $this->sabreResponse = $this->createMock(ResponseInterface::class);
}
public function testInitialize(): void {
- $server = $this->createMock(\Sabre\DAV\Server::class);
+ $server = $this->createMock(Server::class);
$plugin = new AppleProvisioningPlugin($this->userSession,
$this->urlGenerator, $this->themingDefaults, $this->request, $this->l10n,
@@ -149,24 +138,25 @@ class AppleProvisioningPluginTest extends TestCase {
$this->l10n->expects($this->exactly(2))
->method('t')
- ->withConsecutive(
- ['Configures a CalDAV account'],
- ['Configures a CardDAV account'],
- )
- ->willReturnOnConsecutiveCalls(
- 'LocalizedConfiguresCalDAV',
- 'LocalizedConfiguresCardDAV',
- );
+ ->willReturnMap([
+ ['Configures a CalDAV account', [], 'LocalizedConfiguresCalDAV'],
+ ['Configures a CardDAV account', [], 'LocalizedConfiguresCardDAV'],
+ ]);
$this->sabreResponse->expects($this->once())
->method('setStatus')
->with(200);
+
+ $calls = [
+ ['Content-Disposition', 'attachment; filename="userName-apple-provisioning.mobileconfig"'],
+ ['Content-Type', 'application/xml; charset=utf-8'],
+ ];
$this->sabreResponse->expects($this->exactly(2))
->method('setHeader')
- ->withConsecutive(
- ['Content-Disposition', 'attachment; filename="userName-apple-provisioning.mobileconfig"'],
- ['Content-Type', 'application/xml; charset=utf-8'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->sabreResponse->expects($this->once())
->method('setBody')
->with(<<<EOF
diff --git a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
index 0a83d238f0f..f0e5a5ea354 100644
--- a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
@@ -17,27 +17,18 @@ use OCP\IUser;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class ContactsSearchProviderTest extends TestCase {
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CardDavBackend&MockObject $backend;
+ private ContactsSearchProvider $provider;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CardDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var ContactsSearchProvider */
- private $provider;
-
- private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL .
+ private string $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL .
'VERSION:3.0' . PHP_EOL .
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
'UID:Test' . PHP_EOL .
@@ -46,7 +37,7 @@ class ContactsSearchProviderTest extends TestCase {
'EMAIL:forrestgump@example.com' . PHP_EOL .
'END:VCARD';
- private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
+ private string $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
'VERSION:3.0' . PHP_EOL .
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
'PHOTO;ENCODING=b;TYPE=image/jpeg:' . PHP_EOL .
@@ -174,7 +165,7 @@ class ContactsSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDavUrlForContact',
'getDeepLinkToContactsApp',
'generateSubline',
@@ -191,11 +182,10 @@ class ContactsSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(2))
->method('getDeepLinkToContactsApp')
- ->withConsecutive(
- ['addressbook-uri-99', 'Test'],
- ['addressbook-uri-123', 'Test2']
- )
- ->willReturn('deep-link-to-contacts');
+ ->willReturnMap([
+ ['addressbook-uri-99', 'Test', 'deep-link-to-contacts'],
+ ['addressbook-uri-123', 'Test2', 'deep-link-to-contacts'],
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
diff --git a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
index 0eafe0782e5..7c0b74e8ff3 100644
--- a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
@@ -18,27 +18,19 @@ use OCP\Search\IFilter;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class EventsSearchProviderTest extends TestCase {
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var EventsSearchProvider */
- private $provider;
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CalDavBackend&MockObject $backend;
+ private EventsSearchProvider $provider;
// NO SUMMARY
- private $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -54,7 +46,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// TIMED SAME DAY
- private $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -88,7 +80,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// TIMED DIFFERENT DAY
- private $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -122,7 +114,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// ALL-DAY ONE-DAY
- private $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -138,7 +130,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// ALL-DAY MULTIPLE DAYS
- private $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -154,7 +146,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DURATION
- private $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -170,7 +162,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// NO DTEND - DATE
- private $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -185,7 +177,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// NO DTEND - DATE-TIME
- private $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -327,19 +319,19 @@ class EventsSearchProviderTest extends TestCase {
'calendarid' => 99,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'event0.ics',
- 'calendardata' => $this->vEvent0,
+ 'calendardata' => self::$vEvent0,
],
[
'calendarid' => 123,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'event1.ics',
- 'calendardata' => $this->vEvent1,
+ 'calendardata' => self::$vEvent1,
],
[
'calendarid' => 1337,
'calendartype' => CalDavBackend::CALENDAR_TYPE_SUBSCRIPTION,
'uri' => 'event2.ics',
- 'calendardata' => $this->vEvent2,
+ 'calendardata' => self::$vEvent2,
]
]);
@@ -350,7 +342,7 @@ class EventsSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDeepLinkToCalendarApp',
'generateSubline',
])
@@ -361,12 +353,11 @@ class EventsSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(3))
->method('getDeepLinkToCalendarApp')
- ->withConsecutive(
- ['principals/users/john.doe', 'calendar-uri-99', 'event0.ics'],
- ['principals/users/john.doe', 'calendar-uri-123', 'event1.ics'],
- ['principals/users/john.doe', 'subscription-uri-1337', 'event2.ics']
- )
- ->willReturn('deep-link-to-calendar');
+ ->willReturnMap([
+ ['principals/users/john.doe', 'calendar-uri-99', 'event0.ics', 'deep-link-to-calendar'],
+ ['principals/users/john.doe', 'calendar-uri-123', 'event1.ics', 'deep-link-to-calendar'],
+ ['principals/users/john.doe', 'subscription-uri-1337', 'event2.ics', 'deep-link-to-calendar']
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
@@ -428,9 +419,6 @@ class EventsSearchProviderTest extends TestCase {
}
/**
- * @param string $ics
- * @param string $expectedSubline
- *
* @dataProvider generateSublineDataProvider
*/
public function testGenerateSubline(string $ics, string $expectedSubline): void {
@@ -450,15 +438,15 @@ class EventsSearchProviderTest extends TestCase {
$this->assertEquals($expectedSubline, $actual);
}
- public function generateSublineDataProvider(): array {
+ public static function generateSublineDataProvider(): array {
return [
- [$this->vEvent1, '08-16 09:00 - 10:00'],
- [$this->vEvent2, '08-16 09:00 - 08-17 10:00'],
- [$this->vEvent3, '10-05'],
- [$this->vEvent4, '10-05 - 10-07'],
- [$this->vEvent5, '10-05 - 10-09'],
- [$this->vEvent6, '10-05'],
- [$this->vEvent7, '08-16 09:00 - 09:00'],
+ [self::$vEvent1, '08-16 09:00 - 10:00'],
+ [self::$vEvent2, '08-16 09:00 - 08-17 10:00'],
+ [self::$vEvent3, '10-05'],
+ [self::$vEvent4, '10-05 - 10-07'],
+ [self::$vEvent5, '10-05 - 10-09'],
+ [self::$vEvent6, '10-05'],
+ [self::$vEvent7, '08-16 09:00 - 09:00'],
];
}
}
diff --git a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
index de4e29058da..bd242080547 100644
--- a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
@@ -17,28 +17,19 @@ use OCP\IUser;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class TasksSearchProviderTest extends TestCase {
-
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var TasksSearchProvider */
- private $provider;
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CalDavBackend&MockObject $backend;
+ private TasksSearchProvider $provider;
// NO DUE NOR COMPLETED NOR SUMMARY
- private $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -49,7 +40,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE AND COMPLETED
- private $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -63,7 +54,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// COMPLETED ONLY
- private $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -76,7 +67,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE DATE
- private $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -89,7 +80,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE DATETIME
- private $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -204,19 +195,19 @@ class TasksSearchProviderTest extends TestCase {
'calendarid' => 99,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'todo0.ics',
- 'calendardata' => $this->vTodo0,
+ 'calendardata' => self::$vTodo0,
],
[
'calendarid' => 123,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'todo1.ics',
- 'calendardata' => $this->vTodo1,
+ 'calendardata' => self::$vTodo1,
],
[
'calendarid' => 1337,
'calendartype' => CalDavBackend::CALENDAR_TYPE_SUBSCRIPTION,
'uri' => 'todo2.ics',
- 'calendardata' => $this->vTodo2,
+ 'calendardata' => self::$vTodo2,
]
]);
@@ -227,7 +218,7 @@ class TasksSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDeepLinkToTasksApp',
'generateSubline',
])
@@ -238,12 +229,11 @@ class TasksSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(3))
->method('getDeepLinkToTasksApp')
- ->withConsecutive(
- ['calendar-uri-99', 'todo0.ics'],
- ['calendar-uri-123', 'todo1.ics'],
- ['subscription-uri-1337', 'todo2.ics']
- )
- ->willReturn('deep-link-to-tasks');
+ ->willReturnMap([
+ ['calendar-uri-99', 'todo0.ics', 'deep-link-to-tasks'],
+ ['calendar-uri-123', 'todo1.ics', 'deep-link-to-tasks'],
+ ['subscription-uri-1337', 'todo2.ics', 'deep-link-to-tasks']
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
@@ -300,9 +290,6 @@ class TasksSearchProviderTest extends TestCase {
}
/**
- * @param string $ics
- * @param string $expectedSubline
- *
* @dataProvider generateSublineDataProvider
*/
public function testGenerateSubline(string $ics, string $expectedSubline): void {
@@ -310,19 +297,19 @@ class TasksSearchProviderTest extends TestCase {
$taskComponent = $vCalendar->VTODO;
$this->l10n->method('t')->willReturnArgument(0);
- $this->l10n->method('l')->willReturnArgument('');
+ $this->l10n->method('l')->willReturnArgument(0);
$actual = self::invokePrivate($this->provider, 'generateSubline', [$taskComponent]);
$this->assertEquals($expectedSubline, $actual);
}
- public function generateSublineDataProvider(): array {
+ public static function generateSublineDataProvider(): array {
return [
- [$this->vTodo0, ''],
- [$this->vTodo1, 'Completed on %s'],
- [$this->vTodo2, 'Completed on %s'],
- [$this->vTodo3, 'Due on %s'],
- [$this->vTodo4, 'Due on %s by %s'],
+ [self::$vTodo0, ''],
+ [self::$vTodo1, 'Completed on %s'],
+ [self::$vTodo2, 'Completed on %s'],
+ [self::$vTodo3, 'Due on %s'],
+ [self::$vTodo4, 'Due on %s by %s'],
];
}
}
diff --git a/apps/dav/tests/unit/ServerTest.php b/apps/dav/tests/unit/ServerTest.php
index 16e0a5b80aa..0baef015056 100644
--- a/apps/dav/tests/unit/ServerTest.php
+++ b/apps/dav/tests/unit/ServerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,7 +23,7 @@ class ServerTest extends \Test\TestCase {
/**
* @dataProvider providesUris
*/
- public function test($uri, array $plugins): void {
+ public function test(string $uri, array $plugins): void {
/** @var IRequest | \PHPUnit\Framework\MockObject\MockObject $r */
$r = $this->createMock(IRequest::class);
$r->expects($this->any())->method('getRequestUri')->willReturn($uri);
@@ -33,7 +34,7 @@ class ServerTest extends \Test\TestCase {
$this->assertNotNull($s->server->getPlugin($plugin));
}
}
- public function providesUris() {
+ public static function providesUris(): array {
return [
'principals' => ['principals/users/admin', ['caldav', 'oc-resource-sharing', 'carddav']],
'calendars' => ['calendars/admin', ['caldav', 'oc-resource-sharing']],
diff --git a/apps/dav/tests/unit/Service/AbsenceServiceTest.php b/apps/dav/tests/unit/Service/AbsenceServiceTest.php
index 5cff29a6f61..c16c715d5c2 100644
--- a/apps/dav/tests/unit/Service/AbsenceServiceTest.php
+++ b/apps/dav/tests/unit/Service/AbsenceServiceTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\dav\tests\unit\Service;
+namespace OCA\DAV\Tests\unit\Service;
use DateTimeImmutable;
use DateTimeZone;
@@ -24,25 +24,16 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUser;
use OCP\User\Events\OutOfOfficeChangedEvent;
use OCP\User\Events\OutOfOfficeScheduledEvent;
+use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class AbsenceServiceTest extends TestCase {
private AbsenceService $absenceService;
-
- /** @var MockObject|AbsenceMapper */
- private $absenceMapper;
-
- /** @var MockObject|IEventDispatcher */
- private $eventDispatcher;
-
- /** @var MockObject|IJobList */
- private $jobList;
-
- /** @var MockObject|TimezoneService */
- private $timezoneService;
-
- /** @var MockObject|ITimeFactory */
- private $timeFactory;
+ private AbsenceMapper&MockObject $absenceMapper;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IJobList&MockObject $jobList;
+ private TimezoneService&MockObject $timezoneService;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php b/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
index 68bbc02ed08..3bd8c9cb6f6 100644
--- a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
+++ b/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Service;
+namespace OCA\DAV\Tests\unit\Service;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Service\DefaultContactService;
@@ -24,12 +24,12 @@ use Symfony\Component\Uid\Uuid;
use Test\TestCase;
class DefaultContactServiceTest extends TestCase {
- private DefaultContactService $service;
- private MockObject|CardDavBackend $cardDav;
- private MockObject|IAppManager $appManager;
- private MockObject|IAppDataFactory $appDataFactory;
- private MockObject|LoggerInterface $logger;
- private MockObject|IAppConfig $config;
+ protected DefaultContactService $service;
+ protected CardDavBackend&MockObject $cardDav;
+ protected IAppManager&MockObject $appManager;
+ protected IAppDataFactory&MockObject $appDataFactory;
+ protected LoggerInterface&MockObject $logger;
+ protected IAppConfig&MockObject $config;
protected function setUp(): void {
parent::setUp();
@@ -84,7 +84,7 @@ class DefaultContactServiceTest extends TestCase {
$folder->method('getFile')->willReturn($file);
$appData->method('getFolder')->willReturn($folder);
$this->appDataFactory->method('get')->willReturn($appData);
-
+
$capturedCardData = null;
$this->cardDav->expects($this->once())
->method('createCard')
@@ -97,9 +97,9 @@ class DefaultContactServiceTest extends TestCase {
}),
$this->anything()
)->willReturn(null);
-
+
$this->service->createDefaultContact(123);
-
+
$vcard = \Sabre\VObject\Reader::read($capturedCardData);
$this->assertNotEquals($originalUid, $vcard->UID->getValue());
$this->assertTrue(Uuid::isValid($vcard->UID->getValue()));
diff --git a/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php b/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
index ecb0268c8c2..fdfe37d8918 100644
--- a/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
+++ b/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Service;
+namespace OCA\DAV\Tests\unit\DAV\Service;
use DateTimeImmutable;
use OCA\DAV\CalDAV\UpcomingEventsService;
@@ -22,11 +22,11 @@ use PHPUnit\Framework\TestCase;
class UpcomingEventsServiceTest extends TestCase {
- private MockObject|IManager $calendarManager;
- private ITimeFactory|MockObject $timeFactory;
- private IUserManager|MockObject $userManager;
- private IAppManager|MockObject $appManager;
- private IURLGenerator|MockObject $urlGenerator;
+ private IManager&MockObject $calendarManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private IUserManager&MockObject $userManager;
+ private IAppManager&MockObject $appManager;
+ private IURLGenerator&MockObject $urlGenerator;
private UpcomingEventsService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
index 9f2d2582884..df7a08d5d08 100644
--- a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
+++ b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Settings;
+namespace OCA\DAV\Tests\unit\DAV\Settings;
use OCA\DAV\Settings\CalDAVSettings;
use OCP\App\IAppManager;
@@ -15,19 +17,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CalDAVSettingsTest extends TestCase {
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IInitialState|MockObject */
- private $initialState;
-
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IAppManager|MockObject */
- private $appManager;
-
+ private IConfig&MockObject $config;
+ private IInitialState&MockObject $initialState;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IAppManager&MockObject $appManager;
private CalDAVSettings $settings;
protected function setUp(): void {
@@ -42,28 +35,32 @@ class CalDAVSettingsTest extends TestCase {
public function testGetForm(): void {
$this->config->method('getAppValue')
- ->withConsecutive(
- ['dav', 'sendInvitations', 'yes'],
- ['dav', 'generateBirthdayCalendar', 'yes'],
- ['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersToSharedUsers', 'yes'],
- ['dav', 'sendEventRemindersPush', 'yes'],
- )
- ->will($this->onConsecutiveCalls('yes', 'no', 'yes', 'yes', 'yes'));
+ ->willReturnMap([
+ ['dav', 'sendInvitations', 'yes', 'yes'],
+ ['dav', 'generateBirthdayCalendar', 'yes', 'no'],
+ ['dav', 'sendEventReminders', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersToSharedUsers', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersPush', 'yes', 'yes'],
+ ]);
$this->urlGenerator
->expects($this->once())
->method('linkToDocs')
->with('user-sync-calendars')
->willReturn('Some docs URL');
+
+ $calls = [
+ ['userSyncCalendarsDocUrl', 'Some docs URL'],
+ ['sendInvitations', true],
+ ['generateBirthdayCalendar', false],
+ ['sendEventReminders', true],
+ ['sendEventRemindersToSharedUsers', true],
+ ['sendEventRemindersPush', true],
+ ];
$this->initialState->method('provideInitialState')
- ->withConsecutive(
- ['userSyncCalendarsDocUrl', 'Some docs URL'],
- ['sendInvitations', true],
- ['generateBirthdayCalendar', false],
- ['sendEventReminders', true],
- ['sendEventRemindersToSharedUsers', true],
- ['sendEventRemindersPush', true],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$result = $this->settings->getForm();
$this->assertInstanceOf(TemplateResponse::class, $result);
@@ -88,5 +85,4 @@ class CalDAVSettingsTest extends TestCase {
public function testGetPriority(): void {
$this->assertEquals(10, $this->settings->getPriority());
}
-
}
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
index ed830685b7a..0096b188291 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,30 +15,28 @@ use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagMappingNodeTest extends \Test\TestCase {
- private ISystemTagManager $tagManager;
- private ISystemTagObjectMapper $tagMapper;
- private IUser $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
public function getMappingNode($tag = null, array $writableNodeIds = []) {
if ($tag === null) {
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
}
return new SystemTagMappingNode(
$tag,
- 123,
+ '123',
'files',
$this->user,
$this->tagManager,
@@ -47,7 +46,7 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
}
public function testGetters(): void {
- $tag = new SystemTag(1, 'Test', true, false);
+ $tag = new SystemTag('1', 'Test', true, false);
$node = $this->getMappingNode($tag);
$this->assertEquals('1', $node->getName());
$this->assertEquals($tag, $node->getSystemTag());
@@ -93,16 +92,16 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
$node->delete();
}
- public function tagNodeDeleteProviderPermissionException() {
+ public static function tagNodeDeleteProviderPermissionException(): array {
return [
[
// cannot unassign invisible tag
- new SystemTag(1, 'Original', false, true),
+ new SystemTag('1', 'Original', false, true),
'Sabre\DAV\Exception\NotFound',
],
[
// cannot unassign non-assignable tag
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
'Sabre\DAV\Exception\Forbidden',
],
];
@@ -141,7 +140,7 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
// assuming the tag existed at the time the node was created,
// but got deleted concurrently in the database
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
index 32ee733dce8..642cc21319b 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,39 +16,25 @@ use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagAlreadyExistsException;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
class SystemTagNodeTest extends \Test\TestCase {
-
- /**
- * @var ISystemTagManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $tagManager;
-
- /**
- * @var ISystemTagObjectMapper|\PHPUnit\Framework\MockObject\MockObject
- */
- private $tagMapper;
-
- /**
- * @var IUser
- */
- private $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
protected function getTagNode($isAdmin = true, $tag = null) {
if ($tag === null) {
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
}
return new SystemTagNode(
$tag,
@@ -58,14 +45,14 @@ class SystemTagNodeTest extends \Test\TestCase {
);
}
- public function adminFlagProvider() {
+ public static function adminFlagProvider(): array {
return [[true], [false]];
}
/**
* @dataProvider adminFlagProvider
*/
- public function testGetters($isAdmin): void {
+ public function testGetters(bool $isAdmin): void {
$tag = new SystemTag('1', 'Test', true, true);
$node = $this->getTagNode($isAdmin, $tag);
$this->assertEquals('1', $node->getName());
@@ -79,24 +66,24 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->getTagNode()->setName('2');
}
- public function tagNodeProvider() {
+ public static function tagNodeProvider(): array {
return [
// admin
[
true,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Renamed', true, true, null]
],
[
true,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, false, null]
],
// non-admin
[
// renaming allowed
false,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Rename', true, true, '0082c9']
],
];
@@ -105,7 +92,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeProvider
*/
- public function testUpdateTag($isAdmin, ISystemTag $originalTag, $changedArgs): void {
+ public function testUpdateTag(bool $isAdmin, ISystemTag $originalTag, array $changedArgs): void {
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($originalTag)
@@ -121,41 +108,41 @@ class SystemTagNodeTest extends \Test\TestCase {
->update($changedArgs[0], $changedArgs[1], $changedArgs[2], $changedArgs[3]);
}
- public function tagNodeProviderPermissionException() {
+ public static function tagNodeProviderPermissionException(): array {
return [
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, true, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', true, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing non-assignable not allowed
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
['Rename', true, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing non-assignable not allowed
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
['Original', true, true, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// invisible tag does not exist
- new SystemTag(1, 'Original', false, false),
+ new SystemTag('1', 'Original', false, false),
['Rename', false, false, ''],
'Sabre\DAV\Exception\NotFound',
],
@@ -165,7 +152,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeProviderPermissionException
*/
- public function testUpdateTagPermissionException(ISystemTag $originalTag, $changedArgs, $expectedException = null): void {
+ public function testUpdateTagPermissionException(ISystemTag $originalTag, array $changedArgs, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($originalTag)
@@ -193,7 +180,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testUpdateTagAlreadyExists(): void {
$this->expectException(\Sabre\DAV\Exception\Conflict::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -213,7 +200,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testUpdateTagNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -232,8 +219,8 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider adminFlagProvider
*/
- public function testDeleteTag($isAdmin): void {
- $tag = new SystemTag(1, 'tag1', true, true);
+ public function testDeleteTag(bool $isAdmin): void {
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($isAdmin ? $this->once() : $this->never())
->method('canUserSeeTag')
->with($tag)
@@ -247,16 +234,16 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->getTagNode($isAdmin, $tag)->delete();
}
- public function tagNodeDeleteProviderPermissionException() {
+ public static function tagNodeDeleteProviderPermissionException(): array {
return [
[
// cannot delete invisible tag
- new SystemTag(1, 'Original', false, true),
+ new SystemTag('1', 'Original', false, true),
'Sabre\DAV\Exception\Forbidden',
],
[
// cannot delete non-assignable tag
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
'Sabre\DAV\Exception\Forbidden',
],
];
@@ -265,7 +252,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeDeleteProviderPermissionException
*/
- public function testDeleteTagPermissionException(ISystemTag $tag, $expectedException): void {
+ public function testDeleteTagPermissionException(ISystemTag $tag, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -281,7 +268,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testDeleteTagNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
index ab5253147a7..a9368794cc2 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,6 +21,7 @@ use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagAlreadyExistsException;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
@@ -32,67 +34,26 @@ class SystemTagPluginTest extends \Test\TestCase {
public const CANASSIGN_PROPERTYNAME = SystemTagPlugin::CANASSIGN_PROPERTYNAME;
public const GROUPS_PROPERTYNAME = SystemTagPlugin::GROUPS_PROPERTYNAME;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var IGroupManager
- */
- private $groupManager;
-
- /**
- * @var IUserSession
- */
- private $userSession;
-
- /**
- * @var IRootFolder
- */
- private $rootFolder;
-
- /**
- * @var IUser
- */
- private $user;
-
- /**
- * @var SystemTagPlugin
- */
- private $plugin;
-
- /**
- * @var ISystemTagObjectMapper
- */
- private $tagMapper;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private ISystemTagManager&MockObject $tagManager;
+ private IGroupManager&MockObject $groupManager;
+ private IUserSession&MockObject $userSession;
+ private IRootFolder&MockObject $rootFolder;
+ private IUser&MockObject $user;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private SystemTagPlugin $plugin;
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
$this->server = new \Sabre\DAV\Server($this->tree);
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->user = $this->createMock(IUser::class);
+ $this->userSession = $this->createMock(IUserSession::class);
$this->userSession
->expects($this->any())
->method('getUser')
@@ -102,10 +63,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->method('isLoggedIn')
->willReturn(true);
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->rootFolder = $this->getMockBuilder(IRootFolder::class)
- ->getMock();
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
$this->plugin = new SystemTagPlugin(
$this->tagManager,
@@ -117,10 +76,10 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->initialize($this->server);
}
- public function getPropertiesDataProvider() {
+ public static function getPropertiesDataProvider(): array {
return [
[
- new SystemTag(1, 'Test', true, true),
+ new SystemTag('1', 'Test', true, true),
[],
[
self::ID_PROPERTYNAME,
@@ -138,7 +97,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, false),
+ new SystemTag('1', 'Test', true, false),
[],
[
self::ID_PROPERTYNAME,
@@ -156,7 +115,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, false),
+ new SystemTag('1', 'Test', true, false),
['group1', 'group2'],
[
self::ID_PROPERTYNAME,
@@ -168,7 +127,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, true),
+ new SystemTag('1', 'Test', true, true),
['group1', 'group2'],
[
self::ID_PROPERTYNAME,
@@ -186,7 +145,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider getPropertiesDataProvider
*/
- public function testGetProperties(ISystemTag $systemTag, $groups, $requestedProperties, $expectedProperties): void {
+ public function testGetProperties(ISystemTag $systemTag, array $groups, array $requestedProperties, array $expectedProperties): void {
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -237,7 +196,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testGetPropertiesForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestedProperties = [
self::ID_PROPERTYNAME,
self::GROUPS_PROPERTYNAME,
@@ -276,7 +235,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
public function testUpdatePropertiesAdmin(): void {
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -334,7 +293,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testUpdatePropertiesForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -375,7 +334,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$propPatch->commit();
}
- public function createTagInsufficientPermissionsProvider() {
+ public static function createTagInsufficientPermissionsProvider(): array {
return [
[true, false, ''],
[false, true, ''],
@@ -385,7 +344,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider createTagInsufficientPermissionsProvider
*/
- public function testCreateNotAssignableTagAsRegularUser($userVisible, $userAssignable, $groups): void {
+ public function testCreateNotAssignableTagAsRegularUser(bool $userVisible, bool $userAssignable, string $groups): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Not sufficient permissions');
@@ -408,9 +367,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
$requestData = json_encode($requestData);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->never())
->method('createTag');
$this->tagManager->expects($this->never())
@@ -421,12 +378,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -445,7 +398,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
public function testCreateTagInByIdCollectionAsRegularUser(): void {
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = json_encode([
'name' => 'Test',
@@ -453,9 +406,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => true,
]);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', true, true)
@@ -466,12 +417,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -497,7 +444,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- public function createTagProvider() {
+ public static function createTagProvider(): array {
return [
[true, false, ''],
[false, false, ''],
@@ -508,7 +455,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider createTagProvider
*/
- public function testCreateTagInByIdCollection($userVisible, $userAssignable, $groups): void {
+ public function testCreateTagInByIdCollection(bool $userVisible, bool $userAssignable, string $groups): void {
$this->user->expects($this->once())
->method('getUID')
->willReturn('admin');
@@ -518,7 +465,7 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('admin')
->willReturn(true);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = [
'name' => 'Test',
@@ -530,9 +477,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
$requestData = json_encode($requestData);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', $userVisible, $userAssignable)
@@ -553,12 +498,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -584,7 +525,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- public function nodeClassProvider() {
+ public static function nodeClassProvider(): array {
return [
['\OCA\DAV\SystemTag\SystemTagsByIdCollection'],
['\OCA\DAV\SystemTag\SystemTagsObjectMappingCollection'],
@@ -601,7 +542,7 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('admin')
->willReturn(true);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = json_encode([
'name' => 'Test',
@@ -609,9 +550,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => false,
]);
- $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsObjectMappingCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
@@ -627,12 +566,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->method('createFile')
->with(1);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -662,9 +597,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testCreateTagToUnknownNode(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsObjectMappingCollection::class);
$this->tree->expects($this->any())
->method('getNodeForPath')
@@ -676,12 +609,8 @@ class SystemTagPluginTest extends \Test\TestCase {
$node->expects($this->never())
->method('createFile');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -693,7 +622,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider nodeClassProvider
*/
- public function testCreateTagConflict($nodeClass): void {
+ public function testCreateTagConflict(string $nodeClass): void {
$this->expectException(\Sabre\DAV\Exception\Conflict::class);
$this->user->expects($this->once())
@@ -711,9 +640,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => false,
]);
- $node = $this->getMockBuilder($nodeClass)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock($nodeClass);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', true, false)
@@ -724,12 +651,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
index b26171650a2..a6c97af26b4 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,50 +19,36 @@ use OCP\SystemTag\TagNotFoundException;
use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsByIdCollectionTest extends \Test\TestCase {
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var IUser
- */
- private $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
}
- public function getNode($isAdmin = true) {
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ public function getNode(bool $isAdmin = true) {
+ $this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
->willReturn('testuser');
- /** @var IUserSession|MockObject */
- $userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ /** @var IUserSession&MockObject */
+ $userSession = $this->createMock(IUserSession::class);
$userSession->expects($this->any())
->method('getUser')
->willReturn($this->user);
- /** @var IGroupManager|MockObject */
- $groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
+ /** @var IGroupManager&MockObject */
+ $groupManager = $this->createMock(IGroupManager::class);
$groupManager->expects($this->any())
->method('isAdmin')
->with('testuser')
->willReturn($isAdmin);
- /** @var ISystemTagObjectMapper|MockObject */
- $tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
-
+ /** @var ISystemTagObjectMapper&MockObject */
+ $tagMapper = $this->createMock(ISystemTagObjectMapper::class);
return new SystemTagsByIdCollection(
$this->tagManager,
$userSession,
@@ -70,18 +57,18 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
);
}
- public function adminFlagProvider() {
+ public static function adminFlagProvider(): array {
return [[true], [false]];
}
-
+
public function testForbiddenCreateFile(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->getNode()->createFile('555');
}
-
+
public function testForbiddenCreateDirectory(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -89,7 +76,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChild(): void {
- $tag = new SystemTag(123, 'Test', true, false);
+ $tag = new SystemTag('123', 'Test', true, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -107,7 +94,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertEquals($tag, $childNode->getSystemTag());
}
-
+
public function testGetChildInvalidName(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -119,7 +106,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->getNode()->getChild('invalid');
}
-
+
public function testGetChildNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
@@ -131,11 +118,11 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->getNode()->getChild('444');
}
-
+
public function testGetChildUserNotVisible(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(123, 'Test', false, false);
+ $tag = new SystemTag('123', 'Test', false, false);
$this->tagManager->expects($this->once())
->method('getTagsByIds')
@@ -146,8 +133,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChildrenAdmin(): void {
- $tag1 = new SystemTag(123, 'One', true, false);
- $tag2 = new SystemTag(456, 'Two', true, true);
+ $tag1 = new SystemTag('123', 'One', true, false);
+ $tag2 = new SystemTag('456', 'Two', true, true);
$this->tagManager->expects($this->once())
->method('getAllTags')
@@ -165,8 +152,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChildrenNonAdmin(): void {
- $tag1 = new SystemTag(123, 'One', true, false);
- $tag2 = new SystemTag(456, 'Two', true, true);
+ $tag1 = new SystemTag('123', 'One', true, false);
+ $tag2 = new SystemTag('456', 'Two', true, true);
$this->tagManager->expects($this->once())
->method('getAllTags')
@@ -191,7 +178,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertCount(0, $this->getNode()->getChildren());
}
- public function childExistsProvider() {
+ public static function childExistsProvider(): array {
return [
[true, true],
[false, false],
@@ -201,8 +188,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
/**
* @dataProvider childExistsProvider
*/
- public function testChildExists($userVisible, $expectedResult): void {
- $tag = new SystemTag(123, 'One', $userVisible, false);
+ public function testChildExists(bool $userVisible, bool $expectedResult): void {
+ $tag = new SystemTag('123', 'One', $userVisible, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -225,7 +212,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertFalse($this->getNode()->childExists('123'));
}
-
+
public function testChildExistsBadRequest(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
index 66052847f16..59cd3955f1f 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,27 +14,24 @@ use OCP\IUser;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
- private ISystemTagManager $tagManager;
- private ISystemTagObjectMapper $tagMapper;
- private IUser $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
-
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
- public function getNode(array $writableNodeIds = []) {
+ public function getNode(array $writableNodeIds = []): SystemTagsObjectMappingCollection {
return new SystemTagsObjectMappingCollection(
- 111,
+ '111',
'files',
$this->user,
$this->tagManager,
@@ -86,7 +84,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->getNode()->createFile('555');
}
- public function permissionsProvider() {
+ public static function permissionsProvider(): array {
return [
// invisible, tag does not exist for user
[false, true, '\Sabre\DAV\Exception\PreconditionFailed'],
@@ -98,7 +96,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
/**
* @dataProvider permissionsProvider
*/
- public function testAssignTagNoPermission($userVisible, $userAssignable, $expectedException): void {
+ public function testAssignTagNoPermission(bool $userVisible, bool $userAssignable, string $expectedException): void {
$tag = new SystemTag('1', 'Test', $userVisible, $userAssignable);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
@@ -146,7 +144,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testGetChild(): void {
- $tag = new SystemTag(555, 'TheTag', true, false);
+ $tag = new SystemTag('555', 'TheTag', true, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -172,7 +170,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
public function testGetChildNonVisible(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(555, 'TheTag', false, false);
+ $tag = new SystemTag('555', 'TheTag', false, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -228,9 +226,9 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testGetChildren(): void {
- $tag1 = new SystemTag(555, 'TagOne', true, false);
- $tag2 = new SystemTag(556, 'TagTwo', true, true);
- $tag3 = new SystemTag(557, 'InvisibleTag', false, true);
+ $tag1 = new SystemTag('555', 'TagOne', true, false);
+ $tag2 = new SystemTag('556', 'TagTwo', true, true);
+ $tag3 = new SystemTag('557', 'InvisibleTag', false, true);
$this->tagMapper->expects($this->once())
->method('getTagIdsForObjects')
@@ -265,7 +263,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testChildExistsWithVisibleTag(): void {
- $tag = new SystemTag(555, 'TagOne', true, false);
+ $tag = new SystemTag('555', 'TagOne', true, false);
$this->tagMapper->expects($this->once())
->method('haveTag')
@@ -286,7 +284,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testChildExistsWithInvisibleTag(): void {
- $tag = new SystemTag(555, 'TagOne', false, false);
+ $tag = new SystemTag('555', 'TagOne', false, false);
$this->tagMapper->expects($this->once())
->method('haveTag')
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
index ba9304d33fc..301eb528436 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,60 +16,39 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsObjectTypeCollectionTest extends \Test\TestCase {
-
- /**
- * @var SystemTagsObjectTypeCollection
- */
- private $node;
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var ISystemTagObjectMapper
- */
- private $tagMapper;
-
- /**
- * @var Folder
- */
- private $userFolder;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private Folder&MockObject $userFolder;
+ private SystemTagsObjectTypeCollection $node;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
- $user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('testuser');
- $userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ $userSession = $this->createMock(IUserSession::class);
$userSession->expects($this->any())
->method('getUser')
->willReturn($user);
- $groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
+ $groupManager = $this->createMock(IGroupManager::class);
$groupManager->expects($this->any())
->method('isAdmin')
->with('testuser')
->willReturn(true);
- $this->userFolder = $this->getMockBuilder(Folder::class)
- ->getMock();
+ $this->userFolder = $this->createMock(Folder::class);
$userFolder = $this->userFolder;
$closure = function ($name) use ($userFolder) {
- $node = $userFolder->getFirstNodeById(intval($name));
+ $node = $userFolder->getFirstNodeById((int)$name);
return $node !== null;
};
$writeAccessClosure = function ($name) use ($userFolder) {
diff --git a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
index 854d02bfc10..e0bc3c589bc 100644
--- a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
+++ b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
@@ -15,7 +15,11 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testGetContents($expected, $nodes): void {
+ public function testGetContents(string $expected, array $nodeData): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
$stream = AssemblyStream::wrap($nodes);
$content = stream_get_contents($stream);
@@ -25,7 +29,11 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testGetContentsFread($expected, $nodes, $chunkLength = 3): void {
+ public function testGetContentsFread(string $expected, array $nodeData, int $chunkLength = 3): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
$stream = AssemblyStream::wrap($nodes);
$content = '';
@@ -43,7 +51,12 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testSeek($expected, $nodes): void {
+ public function testSeek(string $expected, array $nodeData): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
+
$stream = AssemblyStream::wrap($nodes);
$offset = floor(strlen($expected) * 0.6);
@@ -55,75 +68,75 @@ class AssemblyStreamTest extends \Test\TestCase {
$this->assertEquals(substr($expected, $offset), $content);
}
- public function providesNodes() {
- $data8k = $this->makeData(8192);
- $dataLess8k = $this->makeData(8191);
+ public static function providesNodes(): array {
+ $data8k = self::makeData(8192);
+ $dataLess8k = self::makeData(8191);
$tonofnodes = [];
$tonofdata = '';
for ($i = 0; $i < 101; $i++) {
$thisdata = random_int(0, 100); // variable length and content
$tonofdata .= $thisdata;
- $tonofnodes[] = $this->buildNode((string)$i, (string)$thisdata);
+ $tonofnodes[] = [(string)$i, (string)$thisdata];
}
return[
'one node zero bytes' => [
'', [
- $this->buildNode('0', '')
+ ['0', ''],
]],
'one node only' => [
'1234567890', [
- $this->buildNode('0', '1234567890')
+ ['0', '1234567890'],
]],
'one node buffer boundary' => [
$data8k, [
- $this->buildNode('0', $data8k)
+ ['0', $data8k],
]],
'two nodes' => [
'1234567890', [
- $this->buildNode('1', '67890'),
- $this->buildNode('0', '12345')
+ ['1', '67890'],
+ ['0', '12345'],
]],
'two nodes end on buffer boundary' => [
$data8k . $data8k, [
- $this->buildNode('1', $data8k),
- $this->buildNode('0', $data8k)
+ ['1', $data8k],
+ ['0', $data8k],
]],
'two nodes with one on buffer boundary' => [
$data8k . $dataLess8k, [
- $this->buildNode('1', $dataLess8k),
- $this->buildNode('0', $data8k)
+ ['1', $dataLess8k],
+ ['0', $data8k],
]],
'two nodes on buffer boundary plus one byte' => [
$data8k . 'X' . $data8k, [
- $this->buildNode('1', $data8k),
- $this->buildNode('0', $data8k . 'X')
+ ['1', $data8k],
+ ['0', $data8k . 'X'],
]],
'two nodes on buffer boundary plus one byte at the end' => [
$data8k . $data8k . 'X', [
- $this->buildNode('1', $data8k . 'X'),
- $this->buildNode('0', $data8k)
+ ['1', $data8k . 'X'],
+ ['0', $data8k],
]],
'a ton of nodes' => [
$tonofdata, $tonofnodes
],
'one read over multiple nodes' => [
'1234567890', [
- $this->buildNode('0', '1234'),
- $this->buildNode('1', '5678'),
- $this->buildNode('2', '90'),
+ ['0', '1234'],
+ ['1', '5678'],
+ ['2', '90'],
], 10],
'two reads over multiple nodes' => [
'1234567890', [
- $this->buildNode('0', '1234'),
- $this->buildNode('1', '5678'),
- $this->buildNode('2', '90'),
+ ['0', '1234'],
+ ['1', '5678'],
+ ['2', '90'],
], 5],
];
}
- private function makeData($count) {
+ private static function makeData(int $count): string {
$data = '';
$base = '1234567890';
$j = 0;
@@ -137,10 +150,10 @@ class AssemblyStreamTest extends \Test\TestCase {
return $data;
}
- private function buildNode($name, $data) {
+ private function buildNode(string $name, string $data) {
$node = $this->getMockBuilder(File::class)
- ->setMethods(['getName', 'get', 'getSize'])
- ->getMockForAbstractClass();
+ ->onlyMethods(['getName', 'get', 'getSize'])
+ ->getMock();
$node->expects($this->any())
->method('getName')
diff --git a/apps/dav/tests/unit/Upload/ChunkingPluginTest.php b/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
index 87feebf5d09..00ed7657dd3 100644
--- a/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
+++ b/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
@@ -10,40 +11,24 @@ namespace OCA\DAV\Tests\unit\Upload;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Upload\ChunkingPlugin;
use OCA\DAV\Upload\FutureFile;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class ChunkingPluginTest extends TestCase {
- /**
- * @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree | \PHPUnit\Framework\MockObject\MockObject
- */
- private $tree;
-
- /**
- * @var ChunkingPlugin
- */
- private $plugin;
- /** @var RequestInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var ResponseInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $response;
+ private \Sabre\DAV\Server&MockObject $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private ChunkingPlugin $plugin;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
protected function setUp(): void {
parent::setUp();
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
- $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->server = $this->createMock('\Sabre\DAV\Server');
+ $this->tree = $this->createMock('\Sabre\DAV\Tree');
$this->server->tree = $this->tree;
$this->plugin = new ChunkingPlugin();
@@ -78,14 +63,10 @@ class ChunkingPluginTest extends TestCase {
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $targetNode,
- );
+ ->willReturnMap([
+ ['source', $sourceNode],
+ ['target', $targetNode],
+ ]);
$this->response->expects($this->never())
->method('setStatus');
@@ -98,16 +79,20 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(4);
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
$this->tree->expects($this->any())
->method('nodeExists')
->with('target')
@@ -132,17 +117,21 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(4);
-
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
+
$this->tree->expects($this->any())
->method('nodeExists')
->with('target')
@@ -175,17 +164,21 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(3);
-
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
+
$this->request->expects($this->once())
->method('getHeader')
->with('OC-Total-Length')
diff --git a/apps/dav/tests/unit/Upload/FutureFileTest.php b/apps/dav/tests/unit/Upload/FutureFileTest.php
index 750670992eb..1409df937c0 100644
--- a/apps/dav/tests/unit/Upload/FutureFileTest.php
+++ b/apps/dav/tests/unit/Upload/FutureFileTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -45,7 +46,7 @@ class FutureFileTest extends \Test\TestCase {
public function testDelete(): void {
$d = $this->getMockBuilder(Directory::class)
->disableOriginalConstructor()
- ->setMethods(['delete'])
+ ->onlyMethods(['delete'])
->getMock();
$d->expects($this->once())
@@ -55,7 +56,7 @@ class FutureFileTest extends \Test\TestCase {
$f->delete();
}
-
+
public function testPut(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -63,7 +64,7 @@ class FutureFileTest extends \Test\TestCase {
$f->put('');
}
-
+
public function testSetName(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -71,13 +72,10 @@ class FutureFileTest extends \Test\TestCase {
$f->setName('');
}
- /**
- * @return FutureFile
- */
- private function mockFutureFile() {
+ private function mockFutureFile(): FutureFile {
$d = $this->getMockBuilder(Directory::class)
->disableOriginalConstructor()
- ->setMethods(['getETag', 'getLastModified', 'getChildren'])
+ ->onlyMethods(['getETag', 'getLastModified', 'getChildren'])
->getMock();
$d->expects($this->any())