@Override public List<String> apply(SearchResponse input) { Iterator<Aggregation> aggregations = input.getAggregations() != null ? input.getAggregations().iterator() : null; if (aggregations == null) { return ImmutableList.of(); } ImmutableSet.Builder<String> result = ImmutableSet.builder(); while (aggregations.hasNext()) { addBucketKeys(aggregations.next(), result); } return Util.sortedList(result.build()); }
protected void assertBucket(MultiBucketsAggregation.Bucket expected, MultiBucketsAggregation.Bucket actual, boolean checkOrder) { assertTrue(expected instanceof InternalMultiBucketAggregation.InternalBucket); assertTrue(actual instanceof ParsedMultiBucketAggregation.ParsedBucket); assertEquals(expected.getKey(), actual.getKey()); assertEquals(expected.getKeyAsString(), actual.getKeyAsString()); assertEquals(expected.getDocCount(), actual.getDocCount()); Aggregations expectedAggregations = expected.getAggregations(); Aggregations actualAggregations = actual.getAggregations(); assertEquals(expectedAggregations.asList().size(), actualAggregations.asList().size()); if (checkOrder) { Iterator<Aggregation> expectedIt = expectedAggregations.iterator(); Iterator<Aggregation> actualIt = actualAggregations.iterator(); while (expectedIt.hasNext()) { Aggregation expectedAggregation = expectedIt.next(); Aggregation actualAggregation = actualIt.next(); assertMultiBucketsAggregations(expectedAggregation, actualAggregation, true); } } else { for (Aggregation expectedAggregation : expectedAggregations) { Aggregation actualAggregation = actualAggregations.get(expectedAggregation.getName()); assertNotNull(actualAggregation); assertMultiBucketsAggregations(expectedAggregation, actualAggregation, false); } } } }