summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2022-01-17 11:21:53 +0100
committerGitHub <noreply@github.com>2022-01-17 11:21:53 +0100
commite210c0f8ab9c2739dd545964b21a25ac7c1cbc8f (patch)
tree6a6cd1b1e7b55021d9838eb1b0e875042691d208 /container-search/src/test/java/com/yahoo
parentaf0de1790ddcec36d90821fa2fa15d8364ac312e (diff)
parentf367dfb51f08b2bce4b1b4816bcf2fc3a9f0a0ec (diff)
Merge pull request #20241 from vespa-engine/olaa/add-query-item-limit
Add query item limit
Diffstat (limited to 'container-search/src/test/java/com/yahoo')
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java12
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java22
2 files changed, 34 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
index 11424cc7e4e..f0c29e64839 100644
--- a/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
@@ -490,6 +490,18 @@ public class QueryCanonicalizerTestCase {
assertFalse(shoe.usePositionData());
}
+ @Test
+ public void queryTreeExceedsAllowedSize() {
+ Query query = new Query();
+ QueryTree tree = query.getModel().getQueryTree();
+ tree.setRoot(new WordItem("A"));
+ tree.and(new WordItem("B"));
+
+ assertNull(QueryCanonicalizer.canonicalize(query));
+ query.properties().set("maxQueryItems", 2);
+ assertEquals("Query tree exceeds allowed item count. Configured limit: 2 - Item count: 3", QueryCanonicalizer.canonicalize(query));
+ }
+
private void assertCanonicalized(String canonicalForm, String expectedError, Item root) {
Query query = new Query();
query.getModel().getQueryTree().setRoot(root);
diff --git a/container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java b/container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java
index 054b752c067..6c73937f4fa 100644
--- a/container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java
+++ b/container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java
@@ -2,6 +2,7 @@
package com.yahoo.search.query;
import com.yahoo.prelude.query.NotItem;
+import com.yahoo.prelude.query.NullItem;
import com.yahoo.prelude.query.WordItem;
import org.junit.Assert;
import org.junit.Test;
@@ -41,4 +42,25 @@ public class QueryTreeTest {
assertEquals("+(AND p1 p2) -n1.1 -n1.2 -n2.1 -n2.2", tree.toString());
}
+ @Test
+ public void getCorrectTreeSize() {
+ QueryTree nullTree = new QueryTree(new NullItem());
+ assertEquals(0, nullTree.treeSize());
+
+ NotItem not1 = new NotItem();
+ not1.addPositiveItem(new WordItem("p1"));
+ not1.addNegativeItem(new WordItem("n1.1"));
+ not1.addNegativeItem(new WordItem("n1.2"));
+
+ NotItem not2 = new NotItem();
+ not2.addPositiveItem(new WordItem("p2"));
+ not2.addNegativeItem(new WordItem("n2.1"));
+ not2.addNegativeItem(new WordItem("n2.2"));
+
+ QueryTree tree = new QueryTree(not1);
+ tree.and(not2);
+
+ assertEquals(8, tree.treeSize());
+ }
+
}