diff options
Diffstat (limited to 'tests/lib/ContactsManagerTest.php')
-rw-r--r-- | tests/lib/ContactsManagerTest.php | 150 |
1 files changed, 113 insertions, 37 deletions
diff --git a/tests/lib/ContactsManagerTest.php b/tests/lib/ContactsManagerTest.php index d15cd74bef8..d2d46ce43b4 100644 --- a/tests/lib/ContactsManagerTest.php +++ b/tests/lib/ContactsManagerTest.php @@ -1,7 +1,14 @@ <?php +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ namespace Test; +use OC\ContactsManager; +use OCP\Constants; use OCP\IAddressBook; class ContactsManagerTest extends \Test\TestCase { @@ -10,10 +17,10 @@ class ContactsManagerTest extends \Test\TestCase { protected function setUp(): void { parent::setUp(); - $this->cm = new \OC\ContactsManager(); + $this->cm = new ContactsManager(); } - public function searchProvider() { + public static function searchProvider(): array { $search1 = [ 0 => [ 'N' => [0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',], @@ -58,16 +65,18 @@ class ContactsManagerTest extends \Test\TestCase { ]; } - /** - * @dataProvider searchProvider - */ - public function testSearch($search1, $search2, $expectedResult) { + #[\PHPUnit\Framework\Attributes\DataProvider('searchProvider')] + public function testSearch($search1, $search2, $expectedResult): void { /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook1 = $this->getMockBuilder('\OCP\IAddressBook') + $addressbook1 = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook1->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook1->expects($this->once()) ->method('search') ->willReturn($search1); @@ -75,11 +84,15 @@ class ContactsManagerTest extends \Test\TestCase { ->method('getKey') ->willReturn('simple:1'); - $addressbook2 = $this->getMockBuilder('\OCP\IAddressBook') + $addressbook2 = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook2->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook2->expects($this->once()) ->method('search') ->willReturn($search2); @@ -94,130 +107,193 @@ class ContactsManagerTest extends \Test\TestCase { $this->assertEquals($expectedResult, $result); } + #[\PHPUnit\Framework\Attributes\DataProvider('searchProvider')] + public function testSearchDisabledAb($search1): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook1 = $this->getMockBuilder('\OCP\IAddressBookEnabled') + ->disableOriginalConstructor() + ->getMock(); - public function testDeleteHavePermission() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + $addressbook1->expects($this->once()) + ->method('isEnabled') + ->willReturn(true); + + $addressbook1->expects($this->once()) + ->method('search') + ->willReturn($search1); + + $addressbook1->expects($this->any()) + ->method('getKey') + ->willReturn('simple:1'); + + $addressbook2 = $this->getMockBuilder('\OCP\IAddressBookEnabled') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook2->expects($this->once()) + ->method('isEnabled') + ->willReturn(false); + + $addressbook2->expects($this->never()) + ->method('search'); + + $this->cm->registerAddressBook($addressbook1); + $this->cm->registerAddressBook($addressbook2); + $result = $this->cm->search(''); + $this->assertEquals($search1, $result); + } + + + public function testDeleteHavePermission(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_ALL); + ->willReturn(Constants::PERMISSION_ALL); $addressbook->expects($this->once()) ->method('delete') ->willReturn('returnMe'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); $this->cm->registerAddressBook($addressbook); $result = $this->cm->delete(1, $addressbook->getKey()); $this->assertEquals($result, 'returnMe'); } - public function testDeleteNoPermission() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testDeleteNoPermission(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_READ); + ->willReturn(Constants::PERMISSION_READ); $addressbook->expects($this->never()) ->method('delete'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->delete(1, $addressbook->getKey()); $this->assertEquals($result, null); } - public function testDeleteNoAddressbook() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testDeleteNoAddressbook(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->never()) ->method('delete'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->delete(1, 'noaddressbook'); $this->assertEquals($result, null); } - public function testCreateOrUpdateHavePermission() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testCreateOrUpdateHavePermission(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_ALL); + ->willReturn(Constants::PERMISSION_ALL); $addressbook->expects($this->once()) ->method('createOrUpdate') ->willReturn('returnMe'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->createOrUpdate([], $addressbook->getKey()); $this->assertEquals($result, 'returnMe'); } - public function testCreateOrUpdateNoPermission() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testCreateOrUpdateNoPermission(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->any()) ->method('getPermissions') - ->willReturn(\OCP\Constants::PERMISSION_READ); + ->willReturn(Constants::PERMISSION_READ); $addressbook->expects($this->never()) ->method('createOrUpdate'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->createOrUpdate([], $addressbook->getKey()); $this->assertEquals($result, null); } - public function testCreateOrUpdateNOAdressbook() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testCreateOrUpdateNOAdressbook(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); $addressbook->expects($this->never()) ->method('createOrUpdate'); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->createOrUpdate([], 'noaddressbook'); $this->assertEquals($result, null); } - public function testIsEnabledIfNot() { + public function testIsEnabledIfNot(): void { $result = $this->cm->isEnabled(); $this->assertFalse($result); } - public function testIsEnabledIfSo() { - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + public function testIsEnabledIfSo(): void { + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); + $addressbook->expects($this->any()) + ->method('getKey') + ->willReturn('addressbookKey'); + $this->cm->registerAddressBook($addressbook); $result = $this->cm->isEnabled(); $this->assertTrue($result); } - public function testAddressBookEnumeration() { + public function testAddressBookEnumeration(): void { // create mock for the addressbook - /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBook $addressbook */ - $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + /** @var \PHPUnit\Framework\MockObject\MockObject|IAddressBookEnabled $addressbook */ + $addressbook = $this->getMockBuilder('\OCP\IAddressBookEnabled') ->disableOriginalConstructor() ->getMock(); |