backend = new Backend\Mock('foobar'); $this->abinfo = $this->backend->getAddressBook('foo'); $this->ab = new AddressBook($this->backend, $this->abinfo); } function tearDown() { unset($this->backend); unset($this->ab); } function testGetDisplayName() { $this->assertEquals('d-name', $this->ab->getDisplayName()); } function testGetPermissions() { $this->assertEquals(\OCP\PERMISSION_ALL, $this->ab->getPermissions()); } function testGetBackend() { $this->assertEquals($this->backend, $this->ab->getBackend()); } function testGetChild() { $contact = $this->ab->getChild('123'); $this->assertInstanceOf('OCA\\Contacts\\Contact', $contact); $this->assertEquals('Max Mustermann', $contact->getDisplayName()); } function testAddChild() { $carddata = file_get_contents(__DIR__ . '/../data/test2.vcf'); $vcard = Reader::read($carddata); $id = $this->ab->addChild($vcard); $this->assertNotEquals(false, $id); return $this->ab; } function testDeleteChild() { $this->assertTrue($this->ab->deleteChild('123')); $this->assertEquals(array(), $this->ab->getChildren()); } function testGetChildNotFound() { try { $contact = $this->ab->getChild('Nowhere'); } catch(\Exception $e) { $this->assertEquals('Contact not found', $e->getMessage()); $this->assertEquals(404, $e->getCode()); return; } $this->fail('Expected Exception 404.'); } /** * @depends testAddChild */ function testGetChildren($ab) { $contacts = $ab->getChildren(); $this->assertCount(2, $contacts); $this->assertEquals('Max Mustermann', $contacts[0]->getDisplayName()); $this->assertEquals('John Q. Public', $contacts[1]->getDisplayName()); } function testDelete() { $this->assertTrue($this->ab->delete()); $this->assertEquals(array(), $this->backend->addressBooks); } function testGetLastModified() { $this->assertNull($this->ab->lastModified()); } function testUpdate() { $this->assertTrue( $this->ab->update(array('displayname' => 'bar')) ); $this->assertEquals('bar', $this->backend->addressBooks[0]['displayname']); $props = $this->ab->getMetaData(); return $this->ab; } /** * @depends testUpdate */ function testGetMetaData($ab) { $props = $ab->getMetaData(); $this->assertEquals('bar', $props['displayname']); } function testArrayAccess() { $carddata = file_get_contents(__DIR__ . '/../data/test2.vcf'); $vcard = Reader::read($carddata); $contact = $this->ab['123']; // Test get $this->assertTrue(isset($this->ab['123'])); $this->assertInstanceOf('OCA\\Contacts\\Contact', $contact); $this->assertEquals('Max Mustermann', $contact->getDisplayName()); // Test unset unset($this->ab['123']); $this->assertTrue(!isset($this->ab['123'])); // Test set try { $this->ab[] = $vcard; } catch(\Exception $e) { return; } $this->fail('Expected Exception'); } /** * @depends testAddChild */ function testIterator($ab) { $count = 0; foreach($ab as $contact) { $this->assertInstanceOf('OCA\\Contacts\\Contact', $contact); $count += 1; } $this->assertEquals(2, $count); } /** * @depends testAddChild */ function testCountable($ab) { $this->assertEquals(2, count($ab)); } }