summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java
new file mode 100644
index 0000000000..b4d80ebba9
--- /dev/null
+++ b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java
@@ -0,0 +1,95 @@
+/*
+ * 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.suggest.completion;
+
+import org.elasticsearch.search.suggest.completion.context.CategoryQueryContext;
+
+import java.io.IOException;
+
+public class CategoryQueryContextTests extends QueryContextTestCase<CategoryQueryContext> {
+
+ public static CategoryQueryContext randomCategoryQueryContext() {
+ final CategoryQueryContext.Builder builder = CategoryQueryContext.builder();
+ builder.setCategory(randomAsciiOfLength(10));
+ maybeSet(builder::setBoost, randomIntBetween(1, 10));
+ maybeSet(builder::setPrefix, randomBoolean());
+ return builder.build();
+ }
+
+ @Override
+ protected CategoryQueryContext createTestModel() {
+ return randomCategoryQueryContext();
+ }
+
+ @Override
+ protected CategoryQueryContext createMutation(CategoryQueryContext original) throws IOException {
+ final CategoryQueryContext.Builder builder = CategoryQueryContext.builder();
+ builder.setCategory(original.getCategory()).setBoost(original.getBoost()).setPrefix(original.isPrefix());
+ switch (randomIntBetween(0, 2)) {
+ case 0:
+ builder.setCategory(randomValueOtherThan(original.getCategory(), () -> randomAsciiOfLength(10)));
+ break;
+ case 1:
+ builder.setBoost(randomValueOtherThan(original.getBoost(), () -> randomIntBetween(1, 5)));
+ break;
+ case 2:
+ builder.setPrefix(!original.isPrefix());
+ break;
+
+ }
+ return builder.build();
+ }
+
+ @Override
+ protected CategoryQueryContext prototype() {
+ return CategoryQueryContext.PROTOTYPE;
+ }
+
+ public void testNullCategoryIsIllegal() {
+ final CategoryQueryContext categoryQueryContext = randomCategoryQueryContext();
+ final CategoryQueryContext.Builder builder = CategoryQueryContext.builder()
+ .setBoost(categoryQueryContext.getBoost())
+ .setPrefix(categoryQueryContext.isPrefix());
+ try {
+ builder.build();
+ fail("null category is illegal");
+ } catch (NullPointerException e) {
+ assertEquals(e.getMessage(), "category must not be null");
+ }
+ }
+
+ public void testIllegalArguments() {
+ final CategoryQueryContext.Builder builder = CategoryQueryContext.builder();
+
+ try {
+ builder.setCategory(null);
+ fail("category must not be null");
+ } catch (NullPointerException e) {
+ assertEquals(e.getMessage(), "category must not be null");
+ }
+
+ try {
+ builder.setBoost(-randomIntBetween(1, Integer.MAX_VALUE));
+ fail("boost must be positive");
+ } catch (IllegalArgumentException e) {
+ assertEquals(e.getMessage(), "boost must be greater than 0");
+ }
+ }
+}