|
@@ -27,6 +27,8 @@ import org.elasticsearch.common.xcontent.XContentParser;
|
|
import org.elasticsearch.index.query.QueryParseContext;
|
|
import org.elasticsearch.index.query.QueryParseContext;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+import java.util.List;
|
|
|
|
|
|
public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder> {
|
|
public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder> {
|
|
|
|
|
|
@@ -35,31 +37,38 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
|
|
return randomFieldSortBuilder();
|
|
return randomFieldSortBuilder();
|
|
}
|
|
}
|
|
|
|
|
|
- public static FieldSortBuilder randomFieldSortBuilder() {
|
|
|
|
|
|
+ private List<Object> missingContent = Arrays.asList(
|
|
|
|
+ "_last",
|
|
|
|
+ "_first",
|
|
|
|
+ randomAsciiOfLength(10), randomUnicodeOfCodepointLengthBetween(5, 15),
|
|
|
|
+ randomInt());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public FieldSortBuilder randomFieldSortBuilder() {
|
|
String fieldName = rarely() ? FieldSortBuilder.DOC_FIELD_NAME : randomAsciiOfLengthBetween(1, 10);
|
|
String fieldName = rarely() ? FieldSortBuilder.DOC_FIELD_NAME : randomAsciiOfLengthBetween(1, 10);
|
|
FieldSortBuilder builder = new FieldSortBuilder(fieldName);
|
|
FieldSortBuilder builder = new FieldSortBuilder(fieldName);
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.order(RandomSortDataGenerator.order(null));
|
|
|
|
|
|
+ builder.order(randomFrom(SortOrder.values()));
|
|
}
|
|
}
|
|
|
|
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.missing(RandomSortDataGenerator.missing(builder.missing()));
|
|
|
|
|
|
+ builder.missing(randomFrom(missingContent));
|
|
}
|
|
}
|
|
|
|
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.unmappedType(RandomSortDataGenerator.randomAscii(builder.unmappedType()));
|
|
|
|
|
|
+ builder.unmappedType(randomAsciiOfLengthBetween(1, 10));
|
|
}
|
|
}
|
|
|
|
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.sortMode(RandomSortDataGenerator.mode(builder.sortMode()));
|
|
|
|
|
|
+ builder.sortMode(randomFrom(SortMode.values()));
|
|
}
|
|
}
|
|
|
|
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.setNestedFilter(RandomSortDataGenerator.nestedFilter(builder.getNestedFilter()));
|
|
|
|
|
|
+ builder.setNestedFilter(randomNestedFilter());
|
|
}
|
|
}
|
|
|
|
|
|
if (randomBoolean()) {
|
|
if (randomBoolean()) {
|
|
- builder.setNestedPath(RandomSortDataGenerator.randomAscii(builder.getNestedPath()));
|
|
|
|
|
|
+ builder.setNestedPath(randomAsciiOfLengthBetween(1, 10));
|
|
}
|
|
}
|
|
|
|
|
|
return builder;
|
|
return builder;
|
|
@@ -71,22 +80,28 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
|
|
int parameter = randomIntBetween(0, 5);
|
|
int parameter = randomIntBetween(0, 5);
|
|
switch (parameter) {
|
|
switch (parameter) {
|
|
case 0:
|
|
case 0:
|
|
- mutated.setNestedPath(RandomSortDataGenerator.randomAscii(mutated.getNestedPath()));
|
|
|
|
|
|
+ mutated.setNestedPath(randomValueOtherThan(
|
|
|
|
+ original.getNestedPath(),
|
|
|
|
+ () -> randomAsciiOfLengthBetween(1, 10)));
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
- mutated.setNestedFilter(RandomSortDataGenerator.nestedFilter(mutated.getNestedFilter()));
|
|
|
|
|
|
+ mutated.setNestedFilter(randomValueOtherThan(
|
|
|
|
+ original.getNestedFilter(),
|
|
|
|
+ () -> randomNestedFilter()));
|
|
break;
|
|
break;
|
|
case 2:
|
|
case 2:
|
|
- mutated.sortMode(RandomSortDataGenerator.mode(mutated.sortMode()));
|
|
|
|
|
|
+ mutated.sortMode(randomValueOtherThan(original.sortMode(), () -> randomFrom(SortMode.values())));
|
|
break;
|
|
break;
|
|
case 3:
|
|
case 3:
|
|
- mutated.unmappedType(RandomSortDataGenerator.randomAscii(mutated.unmappedType()));
|
|
|
|
|
|
+ mutated.unmappedType(randomValueOtherThan(
|
|
|
|
+ original.unmappedType(),
|
|
|
|
+ () -> randomAsciiOfLengthBetween(1, 10)));
|
|
break;
|
|
break;
|
|
case 4:
|
|
case 4:
|
|
- mutated.missing(RandomSortDataGenerator.missing(mutated.missing()));
|
|
|
|
|
|
+ mutated.missing(randomValueOtherThan(original.missing(), () -> randomFrom(missingContent)));
|
|
break;
|
|
break;
|
|
case 5:
|
|
case 5:
|
|
- mutated.order(RandomSortDataGenerator.order(mutated.order()));
|
|
|
|
|
|
+ mutated.order(randomValueOtherThan(original.order(), () -> randomFrom(SortOrder.values())));
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
throw new IllegalStateException("Unsupported mutation.");
|
|
throw new IllegalStateException("Unsupported mutation.");
|