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