diff options
author | Jon Bratseth <bratseth@oath.com> | 2022-01-17 11:21:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-17 11:21:53 +0100 |
commit | e210c0f8ab9c2739dd545964b21a25ac7c1cbc8f (patch) | |
tree | 6a6cd1b1e7b55021d9838eb1b0e875042691d208 /container-search/src/test/java/com/yahoo | |
parent | af0de1790ddcec36d90821fa2fa15d8364ac312e (diff) | |
parent | f367dfb51f08b2bce4b1b4816bcf2fc3a9f0a0ec (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.java | 12 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/query/QueryTreeTest.java | 22 |
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()); + } + } |