public function testRemoveRecord() { $idLess1 = $this->object->find('string', 'idLess1'); $countBefore = $this->object->count(); $this->object->removeRecord($idLess1); $this->assertEquals($countBefore - 1, $this->object->count(), 'recordSet count should decrease by 1'); foreach ($this->object as $record) { $this->assertFalse($record === $idLess1, 'idLess1 is still in set'); } }
/** * add default preferences to and remove undefined preferences from record set * * @param Tinebase_Record_RecordSet $_prefs * @param Tinebase_Model_Filter_FilterGroup $_filter */ protected function _addDefaultAndRemoveUndefinedPrefs(Tinebase_Record_RecordSet $_prefs, Tinebase_Model_Filter_FilterGroup $_filter) { $allAppPrefs = $this->getAllApplicationPreferences(); // add default prefs if not already in array (only if no name or type filters are set) if (!$_filter->isFilterSet('name') && !$_filter->isFilterSet('type')) { $missingDefaultPrefs = array_diff($allAppPrefs, $_prefs->name); foreach ($missingDefaultPrefs as $prefName) { $_prefs->addRecord($this->getApplicationPreferenceDefaults($prefName)); } } // remove all prefs that are not defined $undefinedPrefs = array_diff($_prefs->name, $allAppPrefs); if (count($undefinedPrefs) > 0) { $_prefs->addIndices(array('name')); foreach ($undefinedPrefs as $undefinedPrefName) { $record = $_prefs->find('name', $undefinedPrefName); $_prefs->removeRecord($record); if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Removed undefined preference from result: ' . $undefinedPrefName); } } } }