@Test
public void testQueryOptions() {
String q = "{where: ['longValue', '=', 1, 'intValue', '=', 3, 'doubleValue', '=', 4.3], order: [{p:'stringValue', d:'desc'}], sort: [{p:'longValue', d:'desc'}], limit: 2}";
QueryOptions options = QueryOptions.parse(q);
JoinedCondition conditions = assertJoinedCondition(options.getCondition(), LogicalOperator.AND, 3);
assertSimpleCondition(conditions.getConditions()[0], "longValue", WhereOperator.EQUAL, 1l);
assertSimpleCondition(conditions.getConditions()[1], "intValue", WhereOperator.EQUAL, 3l);
assertSimpleCondition(conditions.getConditions()[2], "doubleValue", WhereOperator.EQUAL, 4.3);
List<QueryOrder> order = options.getPreOrders();
assertEquals(1, order.size());
assertOrderEquals("stringValue", "desc", order.get(0));
List<QueryOrder> sort = options.getPostOrders();
assertEquals(1, sort.size());
assertOrderEquals("longValue", "desc", sort.get(0));
assertEquals(new Integer(2), options.getLimit());
}