Skip to content

Commit 74d164e

Browse files
Merge pull request #53111 from nextcloud/tests/noid/carddav-tests
2 parents 595b975 + 6cccdf9 commit 74d164e

23 files changed

+488
-692
lines changed

apps/dav/tests/unit/CardDAV/Activity/BackendTest.php

Lines changed: 19 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
3+
declare(strict_types=1);
24
/**
35
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
46
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,20 +22,11 @@
2022
use Test\TestCase;
2123

2224
class BackendTest extends TestCase {
23-
/** @var IManager|MockObject */
24-
protected $activityManager;
25-
26-
/** @var IGroupManager|MockObject */
27-
protected $groupManager;
28-
29-
/** @var IUserSession|MockObject */
30-
protected $userSession;
31-
32-
/** @var IAppManager|MockObject */
33-
protected $appManager;
34-
35-
/** @var IUserManager|MockObject */
36-
protected $userManager;
25+
protected IManager&MockObject $activityManager;
26+
protected IGroupManager&MockObject $groupManager;
27+
protected IUserSession&MockObject $userSession;
28+
protected IAppManager&MockObject $appManager;
29+
protected IUserManager&MockObject $userManager;
3730

3831
protected function setUp(): void {
3932
parent::setUp();
@@ -45,10 +38,9 @@ protected function setUp(): void {
4538
}
4639

4740
/**
48-
* @param array $methods
4941
* @return Backend|MockObject
5042
*/
51-
protected function getBackend(array $methods = []) {
43+
protected function getBackend(array $methods = []): Backend {
5244
if (empty($methods)) {
5345
return new Backend(
5446
$this->activityManager,
@@ -71,7 +63,7 @@ protected function getBackend(array $methods = []) {
7163
}
7264
}
7365

74-
public function dataCallTriggerAddressBookActivity(): array {
66+
public static function dataCallTriggerAddressBookActivity(): array {
7567
return [
7668
['onAddressbookCreate', [['data']], Addressbook::SUBJECT_ADD, [['data'], [], []]],
7769
['onAddressbookUpdate', [['data'], ['shares'], ['changed-properties']], Addressbook::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]],
@@ -95,7 +87,7 @@ public function testCallTriggerAddressBookActivity(string $method, array $payloa
9587
call_user_func_array([$backend, $method], $payload);
9688
}
9789

98-
public function dataTriggerAddressBookActivity(): array {
90+
public static function dataTriggerAddressBookActivity(): array {
9991
return [
10092
// Add addressbook
10193
[Addressbook::SUBJECT_ADD, [], [], [], '', '', null, []],
@@ -160,12 +152,6 @@ public function dataTriggerAddressBookActivity(): array {
160152

161153
/**
162154
* @dataProvider dataTriggerAddressBookActivity
163-
* @param string $action
164-
* @param array $data
165-
* @param array $shares
166-
* @param array $changedProperties
167-
* @param string $currentUser
168-
* @param string $author
169155
* @param string[]|null $shareUsers
170156
* @param string[] $users
171157
*/
@@ -219,13 +205,13 @@ public function testTriggerAddressBookActivity(string $action, array $data, arra
219205
->method('userExists')
220206
->willReturn(true);
221207

222-
$event->expects($this->exactly(sizeof($users)))
208+
$event->expects($this->exactly(count($users)))
223209
->method('setAffectedUser')
224210
->willReturnSelf();
225-
$event->expects($this->exactly(sizeof($users)))
211+
$event->expects($this->exactly(count($users)))
226212
->method('setSubject')
227213
->willReturnSelf();
228-
$this->activityManager->expects($this->exactly(sizeof($users)))
214+
$this->activityManager->expects($this->exactly(count($users)))
229215
->method('publish')
230216
->with($event);
231217
} else {
@@ -261,7 +247,7 @@ public function testUserDeletionDoesNotCreateActivity(): void {
261247
], [], []]);
262248
}
263249

264-
public function dataTriggerCardActivity(): array {
250+
public static function dataTriggerCardActivity(): array {
265251
$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";
266252

267253
return [
@@ -330,12 +316,6 @@ public function dataTriggerCardActivity(): array {
330316

331317
/**
332318
* @dataProvider dataTriggerCardActivity
333-
* @param string $action
334-
* @param array $addressBookData
335-
* @param array $shares
336-
* @param array $cardData
337-
* @param string $currentUser
338-
* @param string $author
339319
* @param string[]|null $shareUsers
340320
* @param string[] $users
341321
*/
@@ -385,13 +365,13 @@ public function testTriggerCardActivity(string $action, array $addressBookData,
385365
->with($author)
386366
->willReturnSelf();
387367

388-
$event->expects($this->exactly(sizeof($users)))
368+
$event->expects($this->exactly(count($users)))
389369
->method('setAffectedUser')
390370
->willReturnSelf();
391-
$event->expects($this->exactly(sizeof($users)))
371+
$event->expects($this->exactly(count($users)))
392372
->method('setSubject')
393373
->willReturnSelf();
394-
$this->activityManager->expects($this->exactly(sizeof($users)))
374+
$this->activityManager->expects($this->exactly(count($users)))
395375
->method('publish')
396376
->with($event);
397377
} else {
@@ -409,7 +389,7 @@ public function testNoCardActivityCreatedForSystemAddressbook(): void {
409389
$this->assertEmpty($this->invokePrivate($backend, 'triggerCardActivity', [Card::SUBJECT_UPDATE, ['principaluri' => 'principals/system/system'], [], []]));
410390
}
411391

412-
public function dataGetUsersForShares(): array {
392+
public static function dataGetUsersForShares(): array {
413393
return [
414394
[
415395
[],
@@ -454,9 +434,6 @@ public function dataGetUsersForShares(): array {
454434

455435
/**
456436
* @dataProvider dataGetUsersForShares
457-
* @param array $shares
458-
* @param array $groups
459-
* @param array $expected
460437
*/
461438
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
462439
$backend = $this->getBackend();
@@ -498,10 +475,9 @@ protected function getUsers(array $users): array {
498475
}
499476

500477
/**
501-
* @param string $uid
502478
* @return IUser|MockObject
503479
*/
504-
protected function getUserMock(string $uid) {
480+
protected function getUserMock(string $uid): IUser {
505481
$user = $this->createMock(IUser::class);
506482
$user->expects($this->once())
507483
->method('getUID')

apps/dav/tests/unit/CardDAV/AddressBookImplTest.php

Lines changed: 28 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,20 @@
1212
use OCA\DAV\CardDAV\CardDavBackend;
1313
use OCA\DAV\Db\PropertyMapper;
1414
use OCP\IURLGenerator;
15+
use PHPUnit\Framework\MockObject\MockObject;
1516
use Sabre\VObject\Component\VCard;
1617
use Sabre\VObject\Property\Text;
1718
//use Sabre\VObject\Property\;
1819
use Test\TestCase;
1920

2021
class AddressBookImplTest extends TestCase {
21-
/** @var AddressBookImpl */
22-
private $addressBookImpl;
23-
24-
/** @var array */
25-
private $addressBookInfo;
26-
27-
/** @var AddressBook | \PHPUnit\Framework\MockObject\MockObject */
28-
private $addressBook;
29-
30-
/** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
31-
private $urlGenerator;
32-
33-
/** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject */
34-
private $backend;
35-
36-
/** @var PropertyMapper | \PHPUnit\Framework\MockObject\MockObject */
37-
private $propertyMapper;
38-
39-
/** @var VCard | \PHPUnit\Framework\MockObject\MockObject */
40-
private $vCard;
22+
private array $addressBookInfo;
23+
private AddressBook&MockObject $addressBook;
24+
private IURLGenerator&MockObject $urlGenerator;
25+
private CardDavBackend&MockObject $backend;
26+
private PropertyMapper&MockObject $propertyMapper;
27+
private VCard&MockObject $vCard;
28+
private AddressBookImpl $addressBookImpl;
4129

4230
protected function setUp(): void {
4331
parent::setUp();
@@ -48,10 +36,8 @@ protected function setUp(): void {
4836
'principaluri' => 'principals/system/system',
4937
'{DAV:}displayname' => 'display name',
5038
];
51-
$this->addressBook = $this->getMockBuilder(AddressBook::class)
52-
->disableOriginalConstructor()->getMock();
53-
$this->backend = $this->getMockBuilder(CardDavBackend::class)
54-
->disableOriginalConstructor()->getMock();
39+
$this->addressBook = $this->createMock(AddressBook::class);
40+
$this->backend = $this->createMock(CardDavBackend::class);
5541
$this->vCard = $this->createMock(VCard::class);
5642
$this->urlGenerator = $this->createMock(IURLGenerator::class);
5743
$this->propertyMapper = $this->createMock(PropertyMapper::class);
@@ -77,7 +63,7 @@ public function testGetDisplayName(): void {
7763
}
7864

7965
public function testSearch(): void {
80-
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
66+
/** @var MockObject&AddressBookImpl $addressBookImpl */
8167
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
8268
->setConstructorArgs(
8369
[
@@ -89,7 +75,7 @@ public function testSearch(): void {
8975
null
9076
]
9177
)
92-
->setMethods(['vCard2Array', 'readCard'])
78+
->onlyMethods(['vCard2Array', 'readCard'])
9379
->getMock();
9480

9581
$pattern = 'pattern';
@@ -107,10 +93,10 @@ public function testSearch(): void {
10793
$addressBookImpl->expects($this->exactly(2))->method('readCard')
10894
->willReturn($this->vCard);
10995
$addressBookImpl->expects($this->exactly(2))->method('vCard2Array')
110-
->withConsecutive(
111-
['foo.vcf', $this->vCard],
112-
['bar.vcf', $this->vCard]
113-
)->willReturn('vCard');
96+
->willReturnMap([
97+
['foo.vcf', $this->vCard, 'vCard'],
98+
['bar.vcf', $this->vCard, 'vCard'],
99+
]);
114100

115101
$result = $addressBookImpl->search($pattern, $searchProperties, []);
116102
$this->assertTrue((is_array($result)));
@@ -119,13 +105,11 @@ public function testSearch(): void {
119105

120106
/**
121107
* @dataProvider dataTestCreate
122-
*
123-
* @param array $properties
124108
*/
125-
public function testCreate($properties): void {
109+
public function testCreate(array $properties): void {
126110
$uid = 'uid';
127111

128-
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
112+
/** @var MockObject&AddressBookImpl $addressBookImpl */
129113
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
130114
->setConstructorArgs(
131115
[
@@ -137,7 +121,7 @@ public function testCreate($properties): void {
137121
null
138122
]
139123
)
140-
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
124+
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
141125
->getMock();
142126

143127
$expectedProperties = 0;
@@ -164,7 +148,7 @@ public function testCreate($properties): void {
164148
$this->assertTrue($addressBookImpl->createOrUpdate($properties));
165149
}
166150

167-
public function dataTestCreate() {
151+
public static function dataTestCreate(): array {
168152
return [
169153
[[]],
170154
[['FN' => 'John Doe']],
@@ -177,7 +161,7 @@ public function testUpdate(): void {
177161
$uri = 'bla.vcf';
178162
$properties = ['URI' => $uri, 'UID' => $uid, 'FN' => 'John Doe'];
179163

180-
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
164+
/** @var MockObject&AddressBookImpl $addressBookImpl */
181165
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
182166
->setConstructorArgs(
183167
[
@@ -189,7 +173,7 @@ public function testUpdate(): void {
189173
null
190174
]
191175
)
192-
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
176+
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
193177
->getMock();
194178

195179
$addressBookImpl->expects($this->never())->method('createUid');
@@ -216,7 +200,7 @@ public function testUpdateWithTypes(): void {
216200
$vCard = new vCard;
217201
$textProperty = $vCard->createProperty('KEY', 'value');
218202

219-
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
203+
/** @var MockObject&AddressBookImpl $addressBookImpl */
220204
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
221205
->setConstructorArgs(
222206
[
@@ -228,7 +212,7 @@ public function testUpdateWithTypes(): void {
228212
null
229213
]
230214
)
231-
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
215+
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
232216
->getMock();
233217

234218
$this->backend->expects($this->once())->method('getCard')
@@ -248,11 +232,8 @@ public function testUpdateWithTypes(): void {
248232

249233
/**
250234
* @dataProvider dataTestGetPermissions
251-
*
252-
* @param array $permissions
253-
* @param int $expected
254235
*/
255-
public function testGetPermissions($permissions, $expected): void {
236+
public function testGetPermissions(array $permissions, int $expected): void {
256237
$this->addressBook->expects($this->once())->method('getACL')
257238
->willReturn($permissions);
258239

@@ -261,7 +242,7 @@ public function testGetPermissions($permissions, $expected): void {
261242
);
262243
}
263244

264-
public function dataTestGetPermissions() {
245+
public static function dataTestGetPermissions(): array {
265246
return [
266247
[[], 0],
267248
[[['privilege' => '{DAV:}read']], 1],
@@ -299,7 +280,7 @@ public function testReadCard(): void {
299280
}
300281

301282
public function testCreateUid(): void {
302-
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
283+
/** @var MockObject&AddressBookImpl $addressBookImpl */
303284
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
304285
->setConstructorArgs(
305286
[
@@ -311,7 +292,7 @@ public function testCreateUid(): void {
311292
null
312293
]
313294
)
314-
->setMethods(['getUid'])
295+
->onlyMethods(['getUid'])
315296
->getMock();
316297

317298
$addressBookImpl->expects($this->exactly(2))

0 commit comments

Comments
 (0)