|
@@ -19,6 +19,7 @@
|
|
|
|
|
|
package org.elasticsearch.search.aggregations.metrics;
|
|
|
|
|
|
+import org.elasticsearch.index.query.MatchNoneQueryBuilder;
|
|
|
import org.elasticsearch.index.query.QueryBuilder;
|
|
|
import org.elasticsearch.index.query.QueryBuilders;
|
|
|
import org.elasticsearch.search.aggregations.BaseAggregationTestCase;
|
|
@@ -61,4 +62,20 @@ public class FiltersTests extends BaseAggregationTestCase<FiltersAggregatorBuild
|
|
|
return factory;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Test that when passing in keyed filters as list or array, the list stored internally is sorted by key
|
|
|
+ * Also check the list passed in is not modified by this but rather copied
|
|
|
+ */
|
|
|
+ public void testFiltersSortedByKey() {
|
|
|
+ KeyedFilter[] original = new KeyedFilter[]{new KeyedFilter("bbb", new MatchNoneQueryBuilder()),
|
|
|
+ new KeyedFilter("aaa", new MatchNoneQueryBuilder())};
|
|
|
+ FiltersAggregatorBuilder builder;
|
|
|
+ builder = new FiltersAggregatorBuilder("my-agg", original);
|
|
|
+ assertEquals("aaa", builder.filters().get(0).key());
|
|
|
+ assertEquals("bbb", builder.filters().get(1).key());
|
|
|
+ // original should be unchanged
|
|
|
+ assertEquals("bbb", original[0].key());
|
|
|
+ assertEquals("aaa", original[1].key());
|
|
|
+ }
|
|
|
+
|
|
|
}
|