/** @test */ public function translateCriteriaThrowsExceptionOnWrongCriteriaType() { $criteria = new Tx_PtExtlist_Domain_QueryObject_NotCriteria(new Tx_PtExtlist_Domain_QueryObject_SimpleCriteria('field', 'value', '=')); $query = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Query', array(), array(), '', FALSE); try { Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_OrCriteriaTranslator::translateCriteria($criteria, $query, $this->repositoryMock); } catch (Exception $e) { return; } $this->fail('No exception has been thrown on trying to translate wrong criteria class!'); }
/** * Translates given criteria and adds it to extbase query criterias * * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria * @param \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery * @param \TYPO3\CMS\Extbase\Persistence\Repository $repository * @throws Exception * @return \TYPO3\CMS\Extbase\Persistence\Generic\Query */ public static function setCriteriaOnExtBaseQueryByCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria, \TYPO3\CMS\Extbase\Persistence\Generic\Query $extbaseQuery, \TYPO3\CMS\Extbase\Persistence\Repository $repository) { $criteriaClass = get_class($criteria); switch ($criteriaClass) { case 'Tx_PtExtlist_Domain_QueryObject_SimpleCriteria': $extbaseQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_SimpleCriteriaTranslator::translateCriteria($criteria, $extbaseQuery, $repository); break; case 'Tx_PtExtlist_Domain_QueryObject_AndCriteria': $extbaseQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_AndCriteriaTranslator::translateCriteria($criteria, $extbaseQuery, $repository); break; case 'Tx_PtExtlist_Domain_QueryObject_OrCriteria': $extbaseQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_OrCriteriaTranslator::translateCriteria($criteria, $extbaseQuery, $repository); break; case 'Tx_PtExtlist_Domain_QueryObject_NotCriteria': $extbaseQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_NotCriteriaTranslator::translateCriteria($criteria, $extbaseQuery, $repository); break; default: throw new Exception('Unkown criteria type ' . $criteriaClass . ' 1299224408'); break; } return $extbaseQuery; }