Browse Source

Fold helper class into abstract sort test class.

Folds the helper class for random object generation into the
abstract sort test class. Removes a few references to ESTestCase
that were not needed due to inheriting from it along the way.
Isabel Drost-Fromm 9 năm trước cách đây
mục cha
commit
ad8bf53bbd

+ 16 - 0
core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java

@@ -45,8 +45,12 @@ import org.elasticsearch.index.mapper.Mapper.BuilderContext;
 import org.elasticsearch.index.mapper.core.LegacyDoubleFieldMapper.DoubleFieldType;
 import org.elasticsearch.index.mapper.object.ObjectMapper;
 import org.elasticsearch.index.mapper.object.ObjectMapper.Nested;
+import org.elasticsearch.index.query.IdsQueryBuilder;
+import org.elasticsearch.index.query.MatchAllQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryParseContext;
 import org.elasticsearch.index.query.QueryShardContext;
+import org.elasticsearch.index.query.TermQueryBuilder;
 import org.elasticsearch.index.shard.ShardId;
 import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache;
 import org.elasticsearch.indices.query.IndicesQueriesRegistry;
@@ -252,6 +256,18 @@ public abstract class AbstractSortTestCase<T extends SortBuilder<T>> extends EST
         return doubleFieldType;
     }
 
+    protected static QueryBuilder<?> randomNestedFilter() {
+        int id = randomIntBetween(0, 2);
+        switch(id) {
+            case 0: return (new MatchAllQueryBuilder()).boost(randomFloat());
+            case 1: return (new IdsQueryBuilder()).boost(randomFloat());
+            case 2: return (new TermQueryBuilder(
+                    randomAsciiOfLengthBetween(1, 10),
+                    randomDouble()).boost(randomFloat()));
+            default: throw new IllegalStateException("Only three query builders supported for testing sort");
+        }
+    }
+
     @SuppressWarnings("unchecked")
     private T copyItem(T original) throws IOException {
         try (BytesStreamOutput output = new BytesStreamOutput()) {

+ 14 - 16
core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java

@@ -25,12 +25,10 @@ import org.elasticsearch.common.ParsingException;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.elasticsearch.common.xcontent.XContentParser;
 import org.elasticsearch.index.query.QueryParseContext;
-import org.elasticsearch.test.ESTestCase;
 
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
-import java.util.function.Supplier;
 
 public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder> {
 
@@ -42,8 +40,8 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
     private List<Object> missingContent = Arrays.asList(
             "_last",
             "_first",
-            ESTestCase.randomAsciiOfLength(10), ESTestCase.randomUnicodeOfCodepointLengthBetween(5, 15),
-            ESTestCase.randomInt());
+            randomAsciiOfLength(10), randomUnicodeOfCodepointLengthBetween(5, 15),
+            randomInt());
 
 
     public FieldSortBuilder randomFieldSortBuilder() {
@@ -58,7 +56,7 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
         }
 
         if (randomBoolean()) {
-            builder.unmappedType(ESTestCase.randomAsciiOfLengthBetween(1, 10));
+            builder.unmappedType(randomAsciiOfLengthBetween(1, 10));
         }
 
         if (randomBoolean()) {
@@ -66,11 +64,11 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
         }
 
         if (randomBoolean()) {
-            builder.setNestedFilter(NestedQueryBuilderGenerator.randomNestedFilter());
+            builder.setNestedFilter(randomNestedFilter());
         }
 
         if (randomBoolean()) {
-            builder.setNestedPath(ESTestCase.randomAsciiOfLengthBetween(1, 10));
+            builder.setNestedPath(randomAsciiOfLengthBetween(1, 10));
         }
 
         return builder;
@@ -82,28 +80,28 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
         int parameter = randomIntBetween(0, 5);
         switch (parameter) {
         case 0:
-            mutated.setNestedPath(ESTestCase.randomValueOtherThan(
+            mutated.setNestedPath(randomValueOtherThan(
                     original.getNestedPath(),
-                    () -> ESTestCase.randomAsciiOfLengthBetween(1, 10)));
+                    () -> randomAsciiOfLengthBetween(1, 10)));
             break;
         case 1:
-            mutated.setNestedFilter(ESTestCase.randomValueOtherThan(
+            mutated.setNestedFilter(randomValueOtherThan(
                     original.getNestedFilter(),
-                    () -> NestedQueryBuilderGenerator.randomNestedFilter()));
+                    () -> randomNestedFilter()));
             break;
         case 2:
-            mutated.sortMode(ESTestCase.randomValueOtherThan(original.sortMode(), () -> randomFrom(SortMode.values())));
+            mutated.sortMode(randomValueOtherThan(original.sortMode(), () -> randomFrom(SortMode.values())));
             break;
         case 3:
-            mutated.unmappedType(ESTestCase.randomValueOtherThan(
+            mutated.unmappedType(randomValueOtherThan(
                     original.unmappedType(),
-                    () -> ESTestCase.randomAsciiOfLengthBetween(1, 10)));
+                    () -> randomAsciiOfLengthBetween(1, 10)));
             break;
         case 4:
-            mutated.missing(ESTestCase.randomValueOtherThan(original.missing(), () -> randomFrom(missingContent)));
+            mutated.missing(randomValueOtherThan(original.missing(), () -> randomFrom(missingContent)));
             break;
         case 5:
-            mutated.order(ESTestCase.randomValueOtherThan(original.order(), () -> randomFrom(SortOrder.values())));
+            mutated.order(randomValueOtherThan(original.order(), () -> randomFrom(SortOrder.values())));
             break;
         default:
             throw new IllegalStateException("Unsupported mutation.");

+ 2 - 2
core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java

@@ -89,7 +89,7 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase<GeoDistanc
             result.sortMode(mode(result.sortMode()));
         }
         if (randomBoolean()) {
-            result.setNestedFilter(NestedQueryBuilderGenerator.randomNestedFilter());
+            result.setNestedFilter(randomNestedFilter());
         }
         if (randomBoolean()) {
             result.setNestedPath(
@@ -179,7 +179,7 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase<GeoDistanc
         case 6:
             result.setNestedFilter(ESTestCase.randomValueOtherThan(
                     original.getNestedFilter(),
-                    () -> NestedQueryBuilderGenerator.randomNestedFilter()));
+                    () -> randomNestedFilter()));
             break;
         case 7:
             result.setNestedPath(ESTestCase.randomValueOtherThan(

+ 0 - 44
core/src/test/java/org/elasticsearch/search/sort/NestedQueryBuilderGenerator.java

@@ -1,44 +0,0 @@
-/*
- * Licensed to Elasticsearch under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.elasticsearch.search.sort;
-
-import org.elasticsearch.index.query.IdsQueryBuilder;
-import org.elasticsearch.index.query.MatchAllQueryBuilder;
-import org.elasticsearch.index.query.QueryBuilder;
-import org.elasticsearch.index.query.TermQueryBuilder;
-import org.elasticsearch.test.ESTestCase;
-
-import java.util.Arrays;
-import java.util.List;
-
-public class NestedQueryBuilderGenerator {
-    private NestedQueryBuilderGenerator() {
-        // this is a helper class only, doesn't need a constructor
-    }
-
-    private static List<QueryBuilder<?>> builders = Arrays.asList(
-            new MatchAllQueryBuilder(),
-            new IdsQueryBuilder(),
-            new TermQueryBuilder(ESTestCase.randomAsciiOfLengthBetween(1, 10), ESTestCase.randomDouble()));
-
-    public static QueryBuilder<?> randomNestedFilter() {
-        return ESTestCase.randomFrom(builders).boost(ESTestCase.randomFloat());
-    }
-}

+ 2 - 3
core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java

@@ -25,7 +25,6 @@ import org.elasticsearch.common.ParseFieldMatcher;
 import org.elasticsearch.common.ParsingException;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.elasticsearch.common.xcontent.XContentParser;
-import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryParseContext;
 import org.elasticsearch.script.Script;
 import org.elasticsearch.script.ScriptService.ScriptType;
@@ -64,7 +63,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
             }
         }
         if (randomBoolean()) {
-            builder.setNestedFilter(NestedQueryBuilderGenerator.randomNestedFilter());
+            builder.setNestedFilter(randomNestedFilter());
         }
         if (randomBoolean()) {
             builder.setNestedPath(ESTestCase.randomAsciiOfLengthBetween(1, 10));
@@ -116,7 +115,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
             case 2:
                 result.setNestedFilter(ESTestCase.randomValueOtherThan(
                         original.getNestedFilter(),
-                        () -> NestedQueryBuilderGenerator.randomNestedFilter()));
+                        () -> randomNestedFilter()));
                 break;
             case 3:
                 result.setNestedPath(original.getNestedPath() + "_some_suffix");