/**
  * try to set container grants
  *
  */
 public function testSetContainerGrants()
 {
     $container = $this->_backend->addContainer('Addressbook', 'Tine 2.0 Unittest', Tinebase_Model_Container::TYPE_PERSONAL);
     $this->assertEquals('Tine 2.0 Unittest', $container['name']);
     $newGrants = array(array('account_id' => Zend_Registry::get('currentAccount')->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_READ => true, Tinebase_Model_Grants::GRANT_ADD => true, Tinebase_Model_Grants::GRANT_EDIT => true, Tinebase_Model_Grants::GRANT_DELETE => false, Tinebase_Model_Grants::GRANT_ADMIN => true));
     $grants = $this->_backend->setContainerGrants($container['id'], $newGrants);
     $this->assertEquals(1, count($grants['results']));
     $this->assertFalse($grants['results'][0]["deleteGrant"]);
     $this->assertTrue($grants['results'][0]["adminGrant"]);
     $this->_backend->deleteContainer($container['id']);
     $this->setExpectedException('Tinebase_Exception_NotFound');
     $container = Tinebase_Container::getInstance()->getContainerById($container['id']);
 }
 /**
  * test deleting container and the containing events
  * #6704: events do not disappear when shared calendar got deleted
  * https://forge.tine20.org/mantisbt/view.php?id=6704
  */
 public function testDeleteContainerAndEvents()
 {
     $fe = new Tinebase_Frontend_Json_Container();
     $container = $fe->addContainer('Calendar', 'testdeletecontacts', Tinebase_Model_Container::TYPE_SHARED, '');
     // test if model is set automatically
     $this->assertEquals($container['model'], 'Calendar_Model_Event');
     $date = new Tinebase_DateTime();
     $event = new Calendar_Model_Event(array('dtstart' => $date, 'dtend' => $date->subHour(1), 'summary' => 'bla bla', 'class' => 'PUBLIC', 'transp' => 'OPAQUE', 'container_id' => $container['id'], 'organizer' => Tinebase_Core::getUser()->contact_id));
     $event = Calendar_Controller_Event::getInstance()->create($event);
     $this->assertEquals($container['id'], $event->container_id);
     $fe->deleteContainer($container['id']);
     $e = new Exception('dummy');
     $cb = new Calendar_Backend_Sql();
     $deletedEvent = $cb->get($event->getId(), true);
     // record should be deleted
     $this->assertEquals($deletedEvent->is_deleted, 1);
     try {
         Calendar_Controller_Event::getInstance()->get($event->getId(), $container['id']);
         $this->fail('The expected exception was not thrown');
     } catch (Tinebase_Exception_NotFound $e) {
         // ok;
     }
     // record should not be found
     $this->assertEquals($e->getMessage(), 'Calendar_Model_Event record with id ' . $event->getId() . ' not found!');
 }