* */ /** * 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\ItopTestCase; /** * @group itopRequestMgmt * @runTestsInSeparateProcesses * @preserveGlobalState disabled * @backupGlobals disabled */ class CriterionParserTest extends ItopTestCase { protected function setUp() { parent::setUp(); require_once(APPROOT."application/startup.inc.php"); 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()); } }