@Test
public void testObjectLiteral() throws Exception {
Symbol s = analyzeExpression("{}");
assertThat(s, instanceOf(Literal.class));
Literal l = (Literal)s;
assertThat(l.value(), is((Object)new HashMap<String, Object>()));
Literal objectLiteral = (Literal)analyzeExpression("{ident='value'}");
assertThat(objectLiteral.symbolType(), is(SymbolType.LITERAL));
assertThat(objectLiteral.valueType(), is((DataType)ObjectType.INSTANCE));
assertThat(objectLiteral.value(), is((Object) new MapBuilder<String, Object>().put("ident", "value").map()));
Literal multipleObjectLiteral = (Literal)analyzeExpression("{\"Ident\"=123.4, a={}, ident='string'}");
Map<String, Object> values = (Map<String, Object>)multipleObjectLiteral.value();
assertThat(values, is(new MapBuilder<String, Object>()
.put("Ident", 123.4d)
.put("a", new HashMap<String, Object>())
.put("ident", "string")
.map()));