/** * return translated criteria string * @param \Tx_PtExtlist_Domain_QueryObject_AndCriteria|\Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Tx_PtExtlist_Domain_QueryObject_AndCriteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { $andCriteriaString = '(' . Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter::translateCriteria($criteria->getFirstCriteria()); $andCriteriaString .= ') AND ('; $andCriteriaString .= Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter::translateCriteria($criteria->getSecondCriteria()) . ')'; return $andCriteriaString; }
/** * Translates a query an manipulates given query object * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Criteria to be translated * @param \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery Query to add criteria to * @param \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository Associated repository * @return \TYPO3\CMS\Extbase\Persistence\Generic\Query */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria, \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery, \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository) { /** * This is a little ugly here: * * As we do not create Extbase criterias from our generic pt_extlist criterias * but set the criterias directly on the created extbase query, we have to cheat * here and generate two helper queries, whenever a AND query has to be translated. * * After having translated the two criterias of the generic AND criteria, we * put them together again in a single extbase query. */ $tmpQuery1 = $extbaseRepository->createQuery(); $tmpQuery2 = $extbaseRepository->createQuery(); // translate first AND criteria by creating a new extbase query $tmpQuery1 = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_ExtBaseInterpreter::setCriteriaOnExtBaseQueryByCriteria($criteria->getFirstCriteria(), $tmpQuery1, $extbaseRepository); // translate second AND criteria by creating a new extbase query $tmpQuery2 = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_ExtBaseInterpreter::setCriteriaOnExtBaseQueryByCriteria($criteria->getSecondCriteria(), $tmpQuery2, $extbaseRepository); // put both translated criterias together again in a single extbase query if ($extbaseQuery->getConstraint()) { $extbaseQuery->matching($extbaseQuery->logicalAnd($extbaseQuery->getConstraint(), $extbaseQuery->logicalAnd($tmpQuery1->getConstraint(), $tmpQuery2->getConstraint()))); } else { $extbaseQuery->matching($extbaseQuery->logicalAnd($tmpQuery1->getConstraint(), $tmpQuery2->getConstraint())); } return $extbaseQuery; }
/** * Returns true, if given criteria is equal to this object * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Criteria to be compared with this object * @return bool */ public function isEqualTo(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { if (is_a($criteria, __CLASS__)) { if ($this->firstCriteria->isEqualTo($criteria->firstCriteria) && $this->secondCriteria->isEqualTo($criteria->secondCriteria)) { return true; } } return false; }
/** * Translates a query an manipulates given query object * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Criteria to be translated * @param \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery Query to add criteria to * @param \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository Associated repository * @return \TYPO3\CMS\Extbase\Persistence\Generic\Query */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria, \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery, \TYPO3\CMS\Extbase\Persistence\Repository $extbaseRepository) { // translate NOT criteria by creating a new extbase query $tmpQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_ExtBaseInterpreter::setCriteriaOnExtBaseQueryByCriteria($criteria->getCriteria(), $extbaseRepository->createQuery(), $extbaseRepository); // put translated criteria together again in a single extbase query if ($extbaseQuery->getConstraint()) { $extbaseQuery->matching($extbaseQuery->logicalAnd($extbaseQuery->getConstraint(), $extbaseQuery->logicalNot($tmpQuery->getConstraint()))); } else { $extbaseQuery->matching($extbaseQuery->logicalNot($tmpQuery->getConstraint())); } return $extbaseQuery; }
/** * Build the criteria for a single field * * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier * @return Tx_PtExtlist_Domain_QueryObject_SimpleCriteria */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $singleCriteria = NULL; $selectedPid = $this->yagContext->getSelectedPid(); $singleCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals($fieldName, $selectedPid); return $singleCriteria; }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $criteria = NULL; if ($this->filterValue == '') { return NULL; } $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::fullText($this->fieldIdentifierCollection, $this->filterValue, $this->getSearchParameterArray()); return $criteria; }
/** * Creates filter query from filter value and settings * * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier * @return Tx_PtExtlist_Domain_QueryObject_Criteria Criteria for current filter value (null, if empty) */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $timestampBoundaries = $this->getCalculatedTimestampBoundaries(); $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $criteria1 = Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($fieldName, $timestampBoundaries['filterValueFromTimestamp']); $criteria2 = Tx_PtExtlist_Domain_QueryObject_Criteria::lessThanEquals($fieldName, $timestampBoundaries['filterValueToTimestamp']); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::andOp($criteria1, $criteria2); return $criteria; }
public function testGetCriteria() { $query = new Tx_PtExtlist_Domain_QueryObject_Query(); $query->addCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria::lessThan('test', 10)); $this->assertTrue(count($query->getCriterias()) == 1); $criterias = $query->getCriterias(); $this->assertTrue($criterias[0]->getField() == 'test'); $this->assertTrue($criterias[0]->getValue() == 10); $this->assertTrue($criterias[0]->getOperator() == '<'); }
/** * (non-PHPdoc) * @see Classes/Domain/Model/Filter/Tx_PtExtlist_Domain_Model_Filter_AbstractOptionsFilter::buildFilterCriteria() */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $criteria = null; $columnName = $fieldIdentifier->getTableFieldCombined(); $filterValues = array_filter($this->filterValues); if (count($filterValues)) { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::like($columnName, current($filterValues) . '%'); } return $criteria; }
/** * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldStart * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldEnd * @return Tx_PtExtlist_Domain_QueryObject_Criteria * * TODO: Optimize this for a 1-field query */ protected function buildTimeSpanFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldStart, Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldEnd) { $fieldStartName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldStart); $fieldEndName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldEnd); $startValueCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::andOp(Tx_PtExtlist_Domain_QueryObject_Criteria::lessThanEquals($fieldStartName, $this->getFilterValueStartInDBFormat()), Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($fieldEndName, $this->getFilterValueStartInDBFormat())); $endValueCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::andOp(Tx_PtExtlist_Domain_QueryObject_Criteria::lessThanEquals($fieldStartName, $this->getFilterValueEndInDBFormat()), Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($fieldEndName, $this->getFilterValueEndInDBFormat())); $betweenValuesCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::andOp(Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($fieldStartName, $this->getFilterValueStartInDBFormat()), Tx_PtExtlist_Domain_QueryObject_Criteria::lessThanEquals($fieldEndName, $this->getFilterValueEndInDBFormat())); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::orOp(Tx_PtExtlist_Domain_QueryObject_Criteria::orOp($startValueCriteria, $endValueCriteria), $betweenValuesCriteria); return $criteria; }
/** * (non-PHPdoc) * @see Classes/Domain/Model/Filter/Tx_PtExtlist_Domain_Model_Filter_AbstractFilter::buildFilterCriteria() */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $criteria = NULL; if ($this->isActive) { $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $filterValue = intval($this->filterValue); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::lessThanEquals($fieldName, $filterValue); } return $criteria; }
/** * (non-PHPdoc) * @see Classes/Domain/Model/Filter/Tx_PtExtlist_Domain_Model_Filter_AbstractFilter::buildFilterCriteria() */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $criteria = null; if ($this->isActive) { $columnName = $fieldIdentifier->getTableFieldCombined(); $filterValue = intval($this->filterValue); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($columnName, $filterValue); } return $criteria; }
/** * Build the filterCriteria for a timeSpan filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $criteria = null; foreach ($this->dateFieldConfigs as $dateFieldTuple) { $singleCriteria = $this->buildTimeSpanFilterCriteria($dateFieldTuple['start'], $dateFieldTuple['end']); if ($criteria) { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::orOp($criteria, $singleCriteria); } else { $criteria = $singleCriteria; } } return $criteria; }
public function setup() { $this->queryObject = new Tx_PtExtlist_Domain_QueryObject_Query(); // select $this->queryObject->addField('name'); $this->queryObject->addField('age'); // from $this->queryObject->addFrom('Users u'); $this->queryObject->addFrom('Groups g'); // where $this->queryObject->addCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria::equals('name', 'Michael')); // group by $this->queryObject->addGroupBy('name'); $this->queryObject->addGroupBy('company'); // limit $this->queryObject->setLimit('10:10'); // sortings $this->queryObject->addSorting('test'); $this->queryObject->addSorting('test2', Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_DESC); }
/** * translate fullText criteria * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { $connection = $GLOBALS['TYPO3_DB']; /** @var TYPO3\CMS\Core\Database\DatabaseConnection $connection */ $searchString = $criteria->getSearchString(); if ($criteria->getSearchParameter('booleanMode')) { $booleanMode = $criteria->getSearchParameter('booleanMode') ? ' IN BOOLEAN MODE' : ''; if ($criteria->getSearchParameter('booleanModeWrapWithStars')) { if (substr($searchString, 0, 1) != '*') { $searchString = '*' . $searchString; } if (substr($searchString, -1, 1) != '*') { $searchString .= '*'; } } } $searchString = $connection->fullQuoteStr($searchString, ''); return sprintf('MATCH (%s) AGAINST (%s%s)', Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($criteria->getFields()), $searchString, $booleanMode); }
/** * Build the criteria for a single field * * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier * @return Tx_PtExtlist_Domain_QueryObject_SimpleCriteria */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $singleCriteria = NULL; $singleCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::in($fieldName, $this->getFilterNodeUIds()); return $singleCriteria; }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $albumField = $this->fieldIdentifierCollection->getFieldConfigByIdentifier('album'); $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($albumField); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals($fieldName, $this->albumUid); return $criteria; }
/** * translate NOT criteria to string * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria Tx_PtExtlist_Domain_QueryObject_NotCriteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { return 'NOT (' . Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter::translateCriteria($criteria->getCriteria()) . ')'; }
public function testIn() { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::in('test', 'test,test1,test2'); $this->assertTrue(is_a($criteria, 'Tx_PtExtlist_Domain_QueryObject_SimpleCriteria')); }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $onlyInUidSettings = $this->filterConfig->getSettings('onlyInUids'); if (!is_array($onlyInUidSettings)) { // getSettings gives us array() if there are no settings with this key $onlyInUids = GeneralUtility::trimExplode(',', $onlyInUidSettings, true); if (is_array($onlyInUids) && count($onlyInUids)) { $filterCriteriaFromSettings = Tx_PtExtlist_Domain_QueryObject_Criteria::in('uid', $onlyInUids); return $filterCriteriaFromSettings; } } $notInUidSettings = $this->filterConfig->getSettings('notInUids'); if (!is_array($notInUidSettings)) { // getSettings gives us array() if there are no settings with this key $notInUids = GeneralUtility::trimExplode(',', $this->filterConfig->getSettings('notInUids'), true); if (is_array($notInUids) && count($notInUids) > 0) { $filterCriteriaFromSettings = Tx_PtExtlist_Domain_QueryObject_Criteria::notOp(Tx_PtExtlist_Domain_QueryObject_Criteria::in('uid', $notInUids)); return $filterCriteriaFromSettings; } } return null; }
/** * translate raw sql criteria * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { return $criteria->getRawSqlString(); }
/** * @param $fieldName * @param $filterValue * @return Tx_PtExtlist_Domain_QueryObject_SimpleCriteria */ protected function buildFilterCriteriaForSingleValue($fieldName, $filterValue) { if ($this->exactMatch) { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals($fieldName, $filterValue); } else { $filterValue = '%' . $filterValue . '%'; $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::like($fieldName, $filterValue); } return $criteria; }
/** * Build the criteria for a single field * * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier * @return Tx_PtExtlist_Domain_QueryObject_SimpleCriteria */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $singleCriteria = null; if ($fieldIdentifier->getIsRelation()) { $singleCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::relation($fieldName, current($this->filterValues)); } elseif (is_array($this->filterValues) && count($this->filterValues) == 1) { $singleCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals($fieldName, current($this->filterValues)); } elseif (is_array($this->filterValues) && count($this->filterValues) > 1) { $singleCriteria = Tx_PtExtlist_Domain_QueryObject_Criteria::in($fieldName, $this->filterValues); } return $singleCriteria; }
/** * Checks whether a query has a criteria * * @param Tx_PtExtlist_Domain_QueryObject_Query $query * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria * @return bool True, if criteria is contained by query */ protected function queryHasCriteria(Tx_PtExtlist_Domain_QueryObject_Query $query, Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { $criterias = $query->getCriterias(); foreach ($criterias as $queryCriteria) { /* @var $queryCriteria Tx_PtExtlist_Domain_QueryObject_Criteria */ if ($criteria->isEqualTo($queryCriteria)) { return true; } } return false; }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $criteria = NULL; foreach ($this->fieldIdentifierCollection as $fieldIdentifier) { $singleCriteria = $this->buildFilterCriteria($fieldIdentifier); if ($criteria) { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::orOp($criteria, $singleCriteria); } else { $criteria = $singleCriteria; } } return $criteria; }
/** * translate simple criteria * * @param \Tx_PtExtlist_Domain_QueryObject_Criteria|\Tx_PtExtlist_Domain_QueryObject_SimpleCriteria $criteria Tx_PtExtlist_Domain_QueryObject_SimpleCriteria * @return string */ public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria) { return '' . $criteria->getField() . ' ' . $criteria->getOperator() . ' ' . self::wrapArrayInBrackets($criteria->getValue()); }
/** * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier * @return Tx_PtExtlist_Domain_QueryObject_SimpleCriteria */ protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier) { $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($fieldIdentifier); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals($fieldName, $this->filterValue); return $criteria; }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::equals('hidden', 0); return $criteria; }
/** * Build the filterCriteria for filter * * @return Tx_PtExtlist_Domain_QueryObject_Criteria */ protected function buildFilterCriteriaForAllFields() { $uidField = $this->fieldIdentifierCollection->getFieldConfigByIdentifier('uid'); $fieldName = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfig($uidField); $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::in($fieldName, $this->getRandomUIDs()); return $criteria; }
/** @test */ public function getGroupDataReturnsExpectedData() { $dataBackend = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilder); $fields = array('field1', 'field2', 'field3'); $excludeFilters = array('filterbox1.filter1', 'filterbox1.filter2', 'filterbox2.filter1'); $additionalQuery = new Tx_PtExtlist_Domain_QueryObject_Query(); $additionalQuery->addCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThan('field1', 10)); $returnArray = array('test'); $sortingStateCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Sorting_SortingStateCollection', array('getSortingsQuery'), array(), '', false); $sortingStateCollectionMock->expects($this->any())->method('getSortingsQuery')->will($this->returnValue(new Tx_PtExtlist_Domain_QueryObject_Query())); $sorterMock = $this->getMock('Tx_PtExtlist_Domain_Model_Sorting_Sorter', array('getSortingStateCollection'), array(), '', false); $sorterMock->expects($this->any())->method('getSortingStateCollection')->will($this->returnValue($sortingStateCollectionMock)); $queryInterpreterMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter', array('interpretQuery'), array(), '', false); $dataSourceMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_DataSource_MySqlDataSource', array('executeQuery', 'fetchAll'), array(), '', false); $dataSourceMock->expects($this->once())->method('executeQuery')->will($this->returnValue($dataSourceMock)); $dataSourceMock->expects($this->once())->method('fetchAll')->will($this->returnValue($returnArray)); $filterboxCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection', array('getExcludeFilters'), array(), '', false); $filterboxCollectionMock->expects($this->any())->method('excludeFilters')->will($this->returnValue(array())); $dataBackend->_injectBackendConfiguration($this->configurationBuilder->buildDataBackendConfiguration()); $dataBackend->_injectPagerCollection($this->objectManager->get('Tx_PtExtlist_Domain_Model_Pager_PagerCollectionFactory')->getInstance($this->configurationBuilder)); $dataBackend->_injectDataSource($dataSourceMock); $dataBackend->_injectQueryInterpreter($queryInterpreterMock); $dataBackend->_injectSorter($sorterMock); $dataBackend->_injectFilterboxCollection($filterboxCollectionMock); $dataBackend->init(); $groupData = $dataBackend->getGroupData($additionalQuery, $excludeFilters); $this->assertEquals($returnArray, $groupData); }