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); }