diff options
Diffstat (limited to 'container-search/src/test/java/com/yahoo')
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java | 4 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/select/SelectTestCase.java | 32 |
2 files changed, 34 insertions, 2 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java index 244d45f1b29..fb08b39de4d 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java @@ -124,10 +124,10 @@ public class GroupingRequestTestCase { assertEquals(Collections.emptyList(), query.getSelect().getGrouping()); GroupingRequest foo = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo), query.getSelect().getGrouping()); + assertEquals(List.of(foo), query.getSelect().getGrouping()); GroupingRequest bar = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo, bar), query.getSelect().getGrouping()); + assertEquals(List.of(foo, bar), query.getSelect().getGrouping()); } diff --git a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java index 9bcd3addd92..1ce70feebb4 100644 --- a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java +++ b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java @@ -20,6 +20,12 @@ import com.yahoo.prelude.query.WordItem; import com.yahoo.processing.IllegalInputException; import com.yahoo.search.Query; import com.yahoo.search.grouping.GroupingRequest; +import com.yahoo.search.grouping.request.AllOperation; +import com.yahoo.search.grouping.request.AttributeValue; +import com.yahoo.search.grouping.request.CountAggregator; +import com.yahoo.search.grouping.request.EachOperation; +import com.yahoo.search.grouping.request.MaxAggregator; +import com.yahoo.search.grouping.request.MinAggregator; import com.yahoo.search.query.QueryTree; import com.yahoo.search.query.Select; import com.yahoo.search.query.SelectParser; @@ -768,6 +774,32 @@ public class SelectTestCase { assertEquals(clone.getSelect().getGroupingExpressionString(), query.getSelect().getGroupingExpressionString()); } + @Test + public void testProgrammaticBuilding() { + String expected = + "all(group(myfield) max(10000) each(" + + "output(min(foo), max(bar)) " + + "all(group(foo) max(10000) output(count()))" + + "))"; + Query query = new Query(); + GroupingRequest grouping = GroupingRequest.newInstance(query); + AllOperation root = new AllOperation(); + root.setGroupBy(new AttributeValue("myfield")); + root.setMax(10000); + EachOperation each = new EachOperation(); + each.addOutput(new MinAggregator(new AttributeValue("foo"))); + each.addOutput(new MaxAggregator(new AttributeValue("bar"))); + AllOperation all = new AllOperation(); + all.setGroupBy(new AttributeValue("foo")); + all.setMax(10000); + all.addOutput(new CountAggregator()); + each.addChild(all); + root.addChild(each); + grouping.setRootOperation(root); + + assertEquals(expected, query.getSelect().getGrouping().get(0).toString()); + } + //------------------------------------------------------------------- Assert methods private void assertParse(String where, String expectedQueryTree) { |