@@ -452,6 +452,7 @@ public function getTablesProvider()
452452
453453 public function testGetClause ()
454454 {
455+ /* Assertion 1 */
455456 $ parser = new Parser (
456457 'SELECT c.city_id, c.country_id ' .
457458 'FROM `city` ' .
@@ -460,13 +461,97 @@ public function testGetClause()
460461 'LIMIT 0, 1 ' .
461462 'INTO OUTFILE "/dev/null" '
462463 );
464+ $ this ->assertEquals (
465+ '0, 1 INTO OUTFILE "/dev/null" ' ,
466+ Query::getClause (
467+ $ parser ->statements [0 ],
468+ $ parser ->list ,
469+ 'LIMIT ' ,
470+ 0
471+ )
472+ );
473+ // Assert it returns all clauses between FROM and LIMIT
463474 $ this ->assertEquals (
464475 'WHERE city_id < 1 ORDER BY city_id ASC ' ,
476+ Query::getClause (
477+ $ parser ->statements [0 ],
478+ $ parser ->list ,
479+ 'FROM ' ,
480+ 'LIMIT '
481+ )
482+ );
483+ // Assert it returns all clauses between SELECT and LIMIT
484+ $ this ->assertEquals (
485+ 'FROM `city` WHERE city_id < 1 ORDER BY city_id ASC ' ,
465486 Query::getClause (
466487 $ parser ->statements [0 ],
467488 $ parser ->list ,
468489 'LIMIT ' ,
469- 'FROM '
490+ 'SELECT '
491+ )
492+ );
493+
494+ /* Assertion 2 */
495+ $ parser = new Parser (
496+ 'DELETE FROM `renewal` ' .
497+ 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' .
498+ 'ORDER BY id ASC ' .
499+ 'LIMIT 1 '
500+ );
501+ $ this ->assertEquals (
502+ 'number = "1DB" AND actionDate <= CURRENT_DATE() ' ,
503+ Query::getClause (
504+ $ parser ->statements [0 ],
505+ $ parser ->list ,
506+ 'WHERE '
507+ )
508+ );
509+ $ this ->assertEquals (
510+ '1 ' ,
511+ Query::getClause (
512+ $ parser ->statements [0 ],
513+ $ parser ->list ,
514+ 'LIMIT '
515+ )
516+ );
517+ $ this ->assertEquals (
518+ 'id ASC ' ,
519+ Query::getClause (
520+ $ parser ->statements [0 ],
521+ $ parser ->list ,
522+ 'ORDER BY '
523+ )
524+ );
525+
526+ /* Assertion 3 */
527+ $ parser = new Parser (
528+ 'UPDATE `renewal` SET `some_column` = 1 ' .
529+ 'WHERE number = "1DB" AND actionDate <= CURRENT_DATE() ' .
530+ 'ORDER BY id ASC ' .
531+ 'LIMIT 1 '
532+ );
533+ $ this ->assertEquals (
534+ 'number = "1DB" AND actionDate <= CURRENT_DATE() ' ,
535+ Query::getClause (
536+ $ parser ->statements [0 ],
537+ $ parser ->list ,
538+ 'WHERE '
539+ )
540+ );
541+ $ this ->assertEquals (
542+ '1 ' ,
543+ Query::getClause (
544+ $ parser ->statements [0 ],
545+ $ parser ->list ,
546+ 'LIMIT '
547+ )
548+ );
549+ $ this ->assertEquals (
550+ 'id ASC ' ,
551+ Query::getClause (
552+ $ parser ->statements [0 ],
553+ $ parser ->list ,
554+ 'ORDER BY '
470555 )
471556 );
472557 }
0 commit comments