|
|
@@ -7,11 +7,14 @@
|
|
|
|
|
|
package org.elasticsearch.xpack.core.termsenum;
|
|
|
|
|
|
+import org.apache.lucene.index.IndexWriter;
|
|
|
+import org.elasticsearch.action.ActionRequestValidationException;
|
|
|
import org.elasticsearch.action.support.IndicesOptions;
|
|
|
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
|
|
|
import org.elasticsearch.common.io.stream.Writeable;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.common.util.ArrayUtils;
|
|
|
+import org.elasticsearch.core.TimeValue;
|
|
|
import org.elasticsearch.index.query.QueryBuilders;
|
|
|
import org.elasticsearch.indices.IndicesModule;
|
|
|
import org.elasticsearch.search.SearchModule;
|
|
|
@@ -113,4 +116,38 @@ public class TermsEnumRequestTests extends AbstractXContentSerializingTestCase<T
|
|
|
mutator.accept(mutatedInstance);
|
|
|
return mutatedInstance;
|
|
|
}
|
|
|
+
|
|
|
+ public void testValidation() {
|
|
|
+ TermsEnumRequest request = new TermsEnumRequest();
|
|
|
+ ActionRequestValidationException validationException = request.validate();
|
|
|
+ assertEquals(1, validationException.validationErrors().size());
|
|
|
+ assertEquals("field cannot be null", validationException.validationErrors().get(0));
|
|
|
+
|
|
|
+ request.field("field");
|
|
|
+ validationException = request.validate();
|
|
|
+ assertNull(validationException);
|
|
|
+
|
|
|
+ request.timeout(null);
|
|
|
+ validationException = request.validate();
|
|
|
+ assertEquals(1, validationException.validationErrors().size());
|
|
|
+ assertEquals("Timeout cannot be null", validationException.validationErrors().get(0));
|
|
|
+
|
|
|
+ request.timeout(TimeValue.timeValueSeconds(61));
|
|
|
+ validationException = request.validate();
|
|
|
+ assertEquals(1, validationException.validationErrors().size());
|
|
|
+ assertEquals("Timeout cannot be > 1 minute", validationException.validationErrors().get(0));
|
|
|
+
|
|
|
+ request.timeout(TimeValue.timeValueSeconds(10));
|
|
|
+ request.string(randomAlphaOfLengthBetween(1, IndexWriter.MAX_TERM_LENGTH));
|
|
|
+ validationException = request.validate();
|
|
|
+ assertNull(validationException);
|
|
|
+
|
|
|
+ request.string(randomAlphaOfLengthBetween(IndexWriter.MAX_TERM_LENGTH + 1, IndexWriter.MAX_TERM_LENGTH + 100));
|
|
|
+ validationException = request.validate();
|
|
|
+ assertEquals(1, validationException.validationErrors().size());
|
|
|
+ assertEquals(
|
|
|
+ "prefix string larger than 32766 characters, which is the maximum allowed term length for keyword fields.",
|
|
|
+ validationException.validationErrors().get(0)
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|