/**
  * test delete organizer of task (and then search task and retrieve single task) 
  * 
  */
 public function testDeleteOrganizer()
 {
     $organizer = $this->_createUser();
     $organizerId = $organizer->getId();
     $task = $this->_getTask();
     $task->organizer = $organizer;
     $returned = $this->_backend->saveTask($task->toArray());
     $taskId = $returned['id'];
     // check search tasks- organizer exists
     $tasks = $this->_backend->searchTasks($this->_getFilter(), $this->_getPaging());
     $this->assertEquals(1, $tasks['totalcount'], 'more (or less) than one tasks found');
     $this->assertEquals($tasks['results'][0]['organizer']['accountId'], $organizerId);
     // check get single task - organizer exists
     $task = $this->_backend->getTask($taskId);
     $this->assertEquals($task['organizer']['accountId'], $organizerId);
     Tinebase_User::getInstance()->deleteUser($organizerId);
     // test seach search tasks - organizer is deleted
     $tasks = $this->_backend->searchTasks($this->_getFilter(), $this->_getPaging());
     $this->assertEquals(1, $tasks['totalcount'], 'more (or less) than one tasks found');
     $organizer = $tasks['results'][0]['organizer'];
     $this->assertTrue(is_array($organizer), 'organizer not resolved: ' . print_r($tasks['results'][0], TRUE));
     $this->assertEquals($organizer['accountDisplayName'], Tinebase_User::getInstance()->getNonExistentUser()->accountDisplayName, 'accountDisplayName not found in organizer: ' . print_r($organizer, TRUE));
     // test get single task - organizer is deleted
     $task = $this->_backend->getTask($taskId);
     $this->assertEquals($task['organizer']['accountDisplayName'], Tinebase_User::getInstance()->getNonExistentUser()->accountDisplayName);
 }
 /**
  * test advanced search
  *
  * @see 0011492: activate advanced search (search in lead relations)
  */
 public function testAdvancedSearch()
 {
     // create task with lead relation
     $crmTests = new Crm_JsonTest();
     $crmTests->saveLead();
     // activate advanced search
     Tinebase_Core::getPreference()->setValue(Tinebase_Preference::ADVANCED_SEARCH, true);
     // search in lead
     $result = $this->_backend->searchTasks(array(array('field' => 'query', 'operator' => 'contains', 'value' => 'PHPUnit LEAD')), array());
     $this->assertEquals(1, $result['totalcount']);
 }
 /**
  * testOtherRecordConstraintsConfig
  */
 public function testOtherRecordConstraintsConfig()
 {
     $leadData1 = $this->_instance->saveLead($this->_getLead(FALSE, FALSE)->toArray());
     $task = $this->_getTask();
     $taskJson = new Tasks_Frontend_Json();
     $leadJson = new Crm_Frontend_Json();
     $taskData = $task->toArray();
     $taskData['relations'] = array(array('type' => 'TASK', 'own_model' => 'Tasks_Model_Task', 'own_backend' => 'Sql', 'own_degree' => 'sibling', 'related_model' => 'Crm_Model_Lead', 'related_backend' => 'Sql', 'related_id' => $leadData1['id'], 'related_record' => $leadData1));
     $taskData = $taskJson->saveTask($taskData);
     $leadData2 = $this->_instance->saveLead($this->_getLead(FALSE, FALSE)->toArray());
     $leadData2['relations'] = array(array('type' => 'TASK', 'own_model' => 'Crm_Model_Lead', 'own_backend' => 'Sql', 'own_degree' => 'sibling', 'related_model' => 'Tasks_Model_Task', 'related_backend' => 'Sql', 'related_id' => $taskData['id'], 'related_record' => $taskData));
     $this->setExpectedException('Tinebase_Exception_InvalidRelationConstraints');
     $leadJson->saveLead($leadData2);
 }