nextcloud/tests/lib/ContactsManagerTest.php

243 lines
6.7 KiB
PHP
Raw Normal View History

2014-12-07 10:39:15 +03:00
<?php
2016-05-19 10:27:21 +03:00
namespace Test;
2014-12-07 10:39:15 +03:00
use OCP\IAddressBook;
2016-05-19 10:27:21 +03:00
class ContactsManagerTest extends \Test\TestCase {
2014-12-07 10:39:15 +03:00
/** @var \OC\ContactsManager */
private $cm;
protected function setUp(): void {
2014-12-07 10:39:15 +03:00
parent::setUp();
$this->cm = new \OC\ContactsManager();
}
public function searchProvider(){
$search1 = [
0 => [
'N' => [0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',],
2014-12-07 10:39:15 +03:00
'UID' => '04ada7f5-01f9-4309-9c82-6b555b2170ed',
'FN' => 'Jan Jansen',
'id' => '1',
'addressbook-key' => 'simple:1',
],
0 => [
'N' => [0 => '', 1 => 'Tom', 2 => 'Peeters', 3 => '', 4 => '',],
2014-12-07 10:39:15 +03:00
'UID' => '04ada7f5-01f9-4309-9c82-2345-2345--6b555b2170ed',
'FN' => 'Tom Peeters',
'id' => '2',
'addressbook-key' => 'simple:1',
],
];
2014-12-07 10:39:15 +03:00
$search2 = [
0 => [
'N' => [0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',],
2014-12-07 10:39:15 +03:00
'UID' => '04ada234h5jh357f5-01f9-4309-9c82-6b555b2170ed',
'FN' => 'Jan Rompuy',
'id' => '1',
'addressbook-key' => 'simple:2',
],
0 => [
'N' => [0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',],
2014-12-07 10:39:15 +03:00
'UID' => '04ada7f5-01f9-4309-345kj345j9c82-2345-2345--6b555b2170ed',
'FN' => 'Tim Peeters',
'id' => '2',
'addressbook-key' => 'simple:2',
],
];
2014-12-07 10:39:15 +03:00
$expectedResult = array_merge($search1, $search2);
return [
[
2014-12-07 16:10:41 +03:00
$search1,
$search2,
2014-12-07 10:39:15 +03:00
$expectedResult
]
];
2014-12-07 10:39:15 +03:00
}
/**
* @dataProvider searchProvider
*/
2014-12-07 16:10:41 +03:00
public function testSearch($search1, $search2, $expectedResult ){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook1 = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 16:10:41 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook1->expects($this->once())
->method('search')
->willReturn($search1);
$addressbook1->expects($this->any())
->method('getKey')
->willReturn('simple:1');
2014-12-08 15:18:00 +03:00
$addressbook2 = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 16:10:41 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook2->expects($this->once())
->method('search')
->willReturn($search2);
$addressbook2->expects($this->any())
->method('getKey')
->willReturn('simple:2');
$this->cm->registerAddressBook($addressbook1);
$this->cm->registerAddressBook($addressbook2);
2014-12-07 10:39:15 +03:00
$result = $this->cm->search('');
$this->assertEquals($expectedResult, $result);
}
public function testDeleteHavePermission(){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->any())
->method('getPermissions')
->willReturn(\OCP\Constants::PERMISSION_ALL);
$addressbook->expects($this->once())
->method('delete')
->willReturn('returnMe');
$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 */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->any())
->method('getPermissions')
->willReturn(\OCP\Constants::PERMISSION_READ);
$addressbook->expects($this->never())
->method('delete');
$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 */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->never())
->method('delete');
$this->cm->registerAddressBook($addressbook);
$result = $this->cm->delete(1, 'noaddressbook');
$this->assertEquals($result, null);
}
public function testCreateOrUpdateHavePermission(){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->any())
->method('getPermissions')
->willReturn(\OCP\Constants::PERMISSION_ALL);
$addressbook->expects($this->once())
->method('createOrUpdate')
->willReturn('returnMe');
$this->cm->registerAddressBook($addressbook);
$result = $this->cm->createOrUpdate([], $addressbook->getKey());
2014-12-07 10:39:15 +03:00
$this->assertEquals($result, 'returnMe');
}
public function testCreateOrUpdateNoPermission(){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->any())
->method('getPermissions')
->willReturn(\OCP\Constants::PERMISSION_READ);
$addressbook->expects($this->never())
->method('createOrUpdate');
$this->cm->registerAddressBook($addressbook);
$result = $this->cm->createOrUpdate([], $addressbook->getKey());
2014-12-07 10:39:15 +03:00
$this->assertEquals($result, null);
}
public function testCreateOrUpdateNOAdressbook(){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$addressbook->expects($this->never())
->method('createOrUpdate');
$this->cm->registerAddressBook($addressbook);
$result = $this->cm->createOrUpdate([], 'noaddressbook');
2014-12-07 10:39:15 +03:00
$this->assertEquals($result, null);
}
public function testIsEnabledIfNot(){
$result = $this->cm->isEnabled();
$this->assertFalse($result);
}
public function testIsEnabledIfSo(){
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
2014-12-08 15:18:00 +03:00
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
2014-12-07 10:39:15 +03:00
->disableOriginalConstructor()
->getMock();
$this->cm->registerAddressBook($addressbook);
$result = $this->cm->isEnabled();
$this->assertTrue($result);
}
public function testAddressBookEnumeration() {
// create mock for the addressbook
/** @var \PHPUnit_Framework_MockObject_MockObject|IAddressBook $addressbook */
$addressbook = $this->getMockBuilder('\OCP\IAddressBook')
->disableOriginalConstructor()
->getMock();
// setup return for method calls
$addressbook->expects($this->any())
->method('getKey')
->willReturn('SIMPLE_ADDRESS_BOOK');
$addressbook->expects($this->any())
->method('getDisplayName')
->willReturn('A very simple Addressbook');
// register the address book
$this->cm->registerAddressBook($addressbook);
$all_books = $this->cm->getAddressBooks();
$this->assertEquals(1, count($all_books));
$this->assertEquals('A very simple Addressbook', $all_books['SIMPLE_ADDRESS_BOOK']);
}
2016-05-19 10:27:21 +03:00
}