summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java')
-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 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());
+ }
+
}