* */ /** * Created by PhpStorm. * User: Eric * Date: 08/03/2018 * Time: 11:28 */ namespace Combodo\iTop\Test\UnitTest\Application\Search; use Combodo\iTop\Application\Search\CriterionParser; use Combodo\iTop\Test\UnitTest\ItopDataTestCase; class CriterionParserTest extends ItopDataTestCase { /** * @throws Exception */ protected function setUp() { parent::setUp(); require_once(APPROOT."sources/application/search/criterionparser.class.inc.php"); } public function testParse() { $sBaseOql = 'SELECT UserRequest'; $aCriterion = json_decode('{ "or": [ { "and": [ { "ref": "UserRequest.start_date", "values": [ { "value": "2017-01-01", "label": "2017-01-01 00:00:00" } ], "operator": ">", "oql": "" }, { "ref": "UserRequest.start_date", "values": [ { "value": "2018-01-01", "label": "2018-01-01 00:00:00" } ], "operator": "<", "oql": "(`UserRequest`.`start_date` < \'2018-01-01\')" } ] } ] } ', true); $oSearch = CriterionParser::Parse($sBaseOql, $aCriterion); //$this->debug($oSearch); $this->assertEquals("SELECT `UserRequest` FROM UserRequest AS `UserRequest` WHERE ((`UserRequest`.`start_date` > '2017-01-01') AND (`UserRequest`.`start_date` < '2018-01-01'))", $oSearch->ToOQL()); } }