Exemplo n.º 1
0
 public function testParseAtomic()
 {
     $ast = ExpressionParser::parseAtomic(ExpressionParser::lex('foo'));
     $this->assertInstanceOf('Jivoo\\Data\\Query\\Expression\\FieldAccess', $ast);
     $this->assertEquals('foo', $ast->field);
     $ast = ExpressionParser::parseAtomic(ExpressionParser::lex('15.5'));
     $this->assertInstanceOf('Jivoo\\Data\\Query\\Expression\\Literal', $ast);
     $this->assertEquals(15.5, $ast->value);
     $ast = ExpressionParser::parseAtomic(ExpressionParser::lex('?', array(42)));
     $this->assertInstanceOf('Jivoo\\Data\\Query\\Expression\\Literal', $ast);
     $this->assertEquals(42, $ast->value);
     $ast = ExpressionParser::parseAtomic(ExpressionParser::lex('%_', array(DataType::string(), 'test')));
     $this->assertInstanceOf('Jivoo\\Data\\Query\\Expression\\Literal', $ast);
     $this->assertEquals('test', $ast->value);
     $this->assertTrue($ast->type->isString());
     $ast = ExpressionParser::parseAtomic(ExpressionParser::lex('%i()', array(array(1, 2, 3))));
     $this->assertInstanceOf('Jivoo\\Data\\Query\\Expression\\ArrayLiteral', $ast);
     $this->assertEquals(array(1, 2, 3), $ast->values);
 }