getTokensList('IF(film_id > 0, film_id, film_id)')); $this->assertEquals($component->expr, 'IF(film_id > 0, film_id, film_id)'); } public function testParse2() { $component = Expression::parse(new Parser(), $this->getTokensList('col`test`')); } /** * @dataProvider testParseErrProvider */ public function testParseErr($expr, $error) { $parser = new Parser(); Expression::parse($parser, $this->getTokensList($expr)); $errors = $this->getErrorsAsArray($parser); $this->assertEquals($errors[0][0], $error); } public function testParseErrProvider() { return array( array( '(1))', 'Unexpected closing bracket.', ), array( 'tbl..col', 'Unexpected dot.', ), array( 'id AS id2 AS id3', 'An alias was previously found.', ), array( 'id`id2`\'id3\'', 'An alias was previously found.', ), array( '(id) id2 id3', 'An alias was previously found.', ), ); } public function testBuild() { $component = new Expression('1 + 2', 'three'); $this->assertEquals(Expression::build($component), '1 + 2 AS `three`'); } }