Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 19 additions & 43 deletions apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -20,20 +22,11 @@
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();
Expand All @@ -45,10 +38,9 @@ protected function setUp(): void {
}

/**
* @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,
Expand All @@ -71,7 +63,7 @@ protected function getBackend(array $methods = []) {
}
}

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']]],
Expand All @@ -95,7 +87,7 @@ public function testCallTriggerAddressBookActivity(string $method, array $payloa
call_user_func_array([$backend, $method], $payload);
}

public function dataTriggerAddressBookActivity(): array {
public static function dataTriggerAddressBookActivity(): array {
return [
// Add addressbook
[Addressbook::SUBJECT_ADD, [], [], [], '', '', null, []],
Expand Down Expand Up @@ -160,12 +152,6 @@ public function dataTriggerAddressBookActivity(): array {

/**
* @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
*/
Expand Down Expand Up @@ -219,13 +205,13 @@ public function testTriggerAddressBookActivity(string $action, array $data, arra
->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 {
Expand Down Expand Up @@ -261,7 +247,7 @@ public function testUserDeletionDoesNotCreateActivity(): void {
], [], []]);
}

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 [
Expand Down Expand Up @@ -330,12 +316,6 @@ public function dataTriggerCardActivity(): array {

/**
* @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
*/
Expand Down Expand Up @@ -385,13 +365,13 @@ public function testTriggerCardActivity(string $action, array $addressBookData,
->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 {
Expand All @@ -409,7 +389,7 @@ public function testNoCardActivityCreatedForSystemAddressbook(): void {
$this->assertEmpty($this->invokePrivate($backend, 'triggerCardActivity', [Card::SUBJECT_UPDATE, ['principaluri' => 'principals/system/system'], [], []]));
}

public function dataGetUsersForShares(): array {
public static function dataGetUsersForShares(): array {
return [
[
[],
Expand Down Expand Up @@ -454,9 +434,6 @@ public function dataGetUsersForShares(): array {

/**
* @dataProvider dataGetUsersForShares
* @param array $shares
* @param array $groups
* @param array $expected
*/
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
Expand Down Expand Up @@ -498,10 +475,9 @@ protected function getUsers(array $users): array {
}

/**
* @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')
Expand Down
75 changes: 28 additions & 47 deletions apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,20 @@
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();
Expand All @@ -48,10 +36,8 @@ protected function setUp(): void {
'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);
Expand All @@ -77,7 +63,7 @@ public function testGetDisplayName(): void {
}

public function testSearch(): void {
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
/** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
Expand All @@ -89,7 +75,7 @@ public function testSearch(): void {
null
]
)
->setMethods(['vCard2Array', 'readCard'])
->onlyMethods(['vCard2Array', 'readCard'])
->getMock();

$pattern = 'pattern';
Expand All @@ -107,10 +93,10 @@ public function testSearch(): void {
$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)));
Expand All @@ -119,13 +105,11 @@ public function testSearch(): void {

/**
* @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(
[
Expand All @@ -137,7 +121,7 @@ public function testCreate($properties): void {
null
]
)
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
->getMock();

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

public function dataTestCreate() {
public static function dataTestCreate(): array {
return [
[[]],
[['FN' => 'John Doe']],
Expand All @@ -177,7 +161,7 @@ public function testUpdate(): void {
$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(
[
Expand All @@ -189,7 +173,7 @@ public function testUpdate(): void {
null
]
)
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();

$addressBookImpl->expects($this->never())->method('createUid');
Expand All @@ -216,7 +200,7 @@ public function testUpdateWithTypes(): void {
$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(
[
Expand All @@ -228,7 +212,7 @@ public function testUpdateWithTypes(): void {
null
]
)
->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();

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

/**
* @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);

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

public function dataTestGetPermissions() {
public static function dataTestGetPermissions(): array {
return [
[[], 0],
[[['privilege' => '{DAV:}read']], 1],
Expand Down Expand Up @@ -299,7 +280,7 @@ public function testReadCard(): void {
}

public function testCreateUid(): void {
/** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
/** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
Expand All @@ -311,7 +292,7 @@ public function testCreateUid(): void {
null
]
)
->setMethods(['getUid'])
->onlyMethods(['getUid'])
->getMock();

$addressBookImpl->expects($this->exactly(2))
Expand Down
Loading
Loading