diff options
Diffstat (limited to 'container-search/src/test/java')
-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 1d2f92063fe..a5ff92294e8 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", 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..2bff9ba1707 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.getTreeSize()); + + 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.getTreeSize()); + } + } |