case ":sum": q = (Query) stack.pop(); stack.push(new DataExpr.Sum(q)); break; case ":min":
@Test public void nestedInClauses() { Set<String> values = new TreeSet<>(); values.add("key"); values.add("("); values.add("a"); values.add("b"); values.add(")"); values.add(":in"); DataExpr expected = new DataExpr.Sum(new Query.In("key", values)); DataExpr actual = Parser.parseDataExpr("key,(,key,(,a,b,),:in,),:in,:sum"); Assertions.assertEquals(expected, actual); }
@Test public void multiNestedInClauses() { Set<String> values = new TreeSet<>( Arrays.asList("key,(,a,(,b,(,c,),),(,),),:in".split(","))); DataExpr expected = new DataExpr.Sum(new Query.In("key", values)); DataExpr actual = Parser.parseDataExpr("key,(,key,(,a,(,b,(,c,),),(,),),:in,),:in,:sum"); Assertions.assertEquals(expected, actual); }
@Test public void dataExpr() { Subscription sub = new Subscription().withExpression(":true,:sum"); Assertions.assertEquals(new DataExpr.Sum(Query.TRUE), sub.dataExpr()); }