Fix sql to get shared addressbooks including unit tests

This commit is contained in:
Thomas Müller 2016-01-26 18:19:14 +01:00
parent 8f4ab55b4b
commit c7abad65ea
2 changed files with 17 additions and 1 deletions

View File

@ -75,7 +75,7 @@ class AddressBookAdapter {
*/
public function getShares($addressBookId) {
$query = $this->dbConnection->getQueryBuilder();
$shares = $query->select()->from('share')
$shares = $query->select('*')->from('share')
->where($query->expr()->eq('item_source', $query->createNamedParameter($addressBookId)))
->andWhere($query->expr()->eq('item_type', $query->expr()->literal('addressbook')))
->andWhere($query->expr()->in('share_type', [ $query->expr()->literal(0), $query->expr()->literal(1)]))

View File

@ -91,6 +91,17 @@ class AddressbookAdapterTest extends TestCase {
'lastmodified' => $builder->createNamedParameter('112233'),
])
->execute();
$builder = $this->db->getQueryBuilder();
$builder->insert('share')
->values([
'share_type' => $builder->createNamedParameter(1),
'share_with' => $builder->createNamedParameter('user01'),
'uid_owner' => $builder->createNamedParameter('user02'),
'item_type' => $builder->createNamedParameter('addressbook'),
'item_source' => $builder->createNamedParameter(6666),
'item_target' => $builder->createNamedParameter('Contacts (user02)'),
])
->execute();
// test the adapter
$this->adapter->foreachBook('test-user-666', function($row) {
@ -108,6 +119,11 @@ class AddressbookAdapterTest extends TestCase {
});
$this->assertArrayHasKey('id', $this->cards[0]);
$this->assertEquals(6666, $this->cards[0]['addressbookid']);
// test getShares
$shares = $this->adapter->getShares(6666);
$this->assertEquals(1, count($shares));
}
}