Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * 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;
 }
Exemplo n.º 5
0
 /**
  * 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;
 }
Exemplo n.º 6
0
 /**
  * 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;
 }
Exemplo n.º 7
0
 /**
  * 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;
 }
Exemplo n.º 8
0
 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() == '<');
 }
Exemplo n.º 9
0
 /**
  * (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;
 }
Exemplo n.º 10
0
 /**
  * @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;
 }
Exemplo n.º 11
0
 /**
  * (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;
 }
Exemplo n.º 12
0
 /**
  * (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;
 }
Exemplo n.º 13
0
 /**
  * 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);
 }
Exemplo n.º 16
0
 /**
  * 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;
 }
Exemplo n.º 17
0
 /**
  * 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()) . ')';
 }
Exemplo n.º 19
0
 public function testIn()
 {
     $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::in('test', 'test,test1,test2');
     $this->assertTrue(is_a($criteria, 'Tx_PtExtlist_Domain_QueryObject_SimpleCriteria'));
 }
Exemplo n.º 20
0
 /**
  * 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();
 }
Exemplo n.º 22
0
 /**
  * @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;
 }
Exemplo n.º 23
0
 /**
  * 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;
 }
Exemplo n.º 24
0
 /**
  * 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;
 }
Exemplo n.º 25
0
 /**
  * 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;
 }
Exemplo n.º 26
0
 /**
  * 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());
 }
Exemplo n.º 27
0
 /**
  * @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;
 }
Exemplo n.º 28
0
 /**
  * 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;
 }
Exemplo n.º 29
0
 /**
  * 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;
 }
Exemplo n.º 30
0
 /** @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);
 }