public function testIsEqualTo() { $criteriaReference = new Tx_PtExtlist_Domain_QueryObject_SimpleCriteria('test', 'value', '='); $criteriaEqual = new Tx_PtExtlist_Domain_QueryObject_SimpleCriteria('test', 'value', '='); $criteriaInEqual = new Tx_PtExtlist_Domain_QueryObject_SimpleCriteria('field', 'value', '='); $this->assertTrue($criteriaReference->isEqualTo($criteriaEqual)); $this->assertTrue(!$criteriaReference->isEqualTo($criteriaInEqual)); }
/** @test */ public function translateCriteriaTranslatesNotCriteriaToCorrectExtbaseCriteriaIfNoOtherCriteriaIsSetOnExtbaseQuery() { $this->markTestSkipped('It seems not possible to use a mock as constraint. We need a solution here'); $operand1 = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Qom\\DynamicOperandInterface'); $operand2 = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Qom\\DynamicOperandInterface'); $extbaseQueryInnerConstraint = new \TYPO3\CMS\Extbase\Persistence\Generic\Qom\Comparison($operand1, 2, $operand2); $extbaseQueryMock = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Query', array('getConstraint', 'matching', 'logicalAnd', 'logicalNot'), array('any')); $extbaseQueryMock->expects($this->any())->method('getConstraint')->will($this->returnValue($extbaseQueryInnerConstraint)); $tmpQueryMock = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Query', array('getConstraint'), array('any'), '', false); $tmpQueryMock->expects($this->at(0))->method('getConstraint')->will($this->returnValue(null)); $extbaseRepositoryMock = $this->getMock('\\TYPO3\\CMS\\Extbase\\Persistence\\Repository', array('createQuery'), array(), '', false); $extbaseRepositoryMock->expects($this->once())->method('createQuery')->will($this->returnValue($tmpQueryMock)); $notCriteriaInnerCriteria = Tx_PtExtlist_Domain_QueryObject_SimpleCriteria::equals('test', 1); $notCriteria = $this->getMock('Tx_PtExtlist_Domain_QueryObject_NotCriteria', array('getCriteria'), array(), '', false); $notCriteria->expects($this->any())->method('getCriteria')->will($this->returnValue($notCriteriaInnerCriteria)); $translatedQuery = Tx_PtExtlist_Domain_DataBackend_ExtBaseDataBackend_ExtBaseInterpreter_NotCriteriaTranslator::translateCriteria($notCriteria, $extbaseQueryMock, $extbaseRepositoryMock); $this->assertTrue(is_a($translatedQuery->getConstraint(), '\\TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Qom\\Comparison')); $translatedConstraint = $translatedQuery->getConstraint(); $this->assertEquals($translatedConstraint->getOperator(), 2); }
/** * Returns field name for a given criteria object * * @param Tx_PtExtlist_Domain_QueryObject_SimpleCriteria $criteria * @return string Fieldname */ protected static function getPropertyNameByCriteria(Tx_PtExtlist_Domain_QueryObject_SimpleCriteria $criteria) { list($predot, $postdot) = explode('.', $criteria->getField()); return $postdot != '' ? $postdot : $predot; }