/**
  * test custom fields
  *
  * - add custom field
  * - get custom fields for app
  * - delete custom field
  */
 public function testCustomFields()
 {
     // create
     $customField = self::getCustomField();
     $createdCustomField = $this->_instance->addCustomField($customField);
     $this->assertEquals($customField->name, $createdCustomField->name);
     $this->assertNotNull($createdCustomField->getId());
     // fetch
     $application = Tinebase_Application::getInstance()->getApplicationByName('Tinebase');
     $appCustomFields = $this->_instance->getCustomFieldsForApplication($application->getId());
     $this->assertGreaterThan(0, count($appCustomFields));
     $this->assertEquals($application->getId(), $appCustomFields[0]->application_id);
     // check with model name
     $appCustomFieldsWithModelName = $this->_instance->getCustomFieldsForApplication($application->getId(), $customField->model);
     $this->assertGreaterThan(0, count($appCustomFieldsWithModelName));
     $this->assertEquals($customField->model, $appCustomFieldsWithModelName[0]->model, 'didn\'t get correct model name');
     // check if grants are returned
     $this->_instance->resolveConfigGrants($appCustomFields);
     $accountGrants = $appCustomFields->getFirstRecord()->account_grants;
     sort($accountGrants);
     $this->assertEquals(Tinebase_Model_CustomField_Grant::getAllGrants(), $accountGrants);
     // delete
     $this->_instance->deleteCustomField($createdCustomField);
     $this->setExpectedException('Tinebase_Exception_NotFound');
     $this->_instance->getCustomField($createdCustomField->getId());
 }