summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-11-25 14:32:21 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-25 18:55:21 +0100
commitc19fb20b2bdb12ed6e1c1aa5cc7b9e7efb033b84 (patch)
tree538ad4eba247a9d74ac5c53befc80fa4898e967e /container-search/src/test/java/com/yahoo/search
parent29ee9162845ffaeb01f22a242d2fc7ab9593530e (diff)
Add the softtimeout query control.
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search')
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java45
-rw-r--r--container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java1
2 files changed, 46 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java b/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java
new file mode 100644
index 00000000000..ccfc71b7922
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/query/SoftTimeoutTestCase.java
@@ -0,0 +1,45 @@
+package com.yahoo.search.query;
+
+import com.yahoo.prelude.query.QueryException;
+import com.yahoo.search.Query;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+/**
+ * @author baldersheim
+ */
+public class SoftTimeoutTestCase {
+ @Test
+ public void testDefaultsInQuery() {
+ Query query=new Query("?query=test");
+ assertNull(query.getRanking().getSoftTimeout().getEnable());
+ assertNull(query.getRanking().getSoftTimeout().getFactor());
+ assertNull(query.getRanking().getSoftTimeout().getTailcost());
+ }
+
+ @Test
+ public void testQueryOverride() {
+ Query query=new Query("?query=test&ranking.softtimeout.enable&ranking.softtimeout.factor=0.7&ranking.softtimeout.tailcost=0.3");
+ assertTrue(query.getRanking().getSoftTimeout().getEnable());
+ assertEquals(Double.valueOf(0.7), query.getRanking().getSoftTimeout().getFactor());
+ assertEquals(Double.valueOf(0.3), query.getRanking().getSoftTimeout().getTailcost());
+ }
+
+ private void verifyException(String key, String value) {
+ try {
+ new Query("?query=test&ranking.softtimeout."+key+"="+value);
+ assertFalse(true);
+ } catch (QueryException e) {
+ assertEquals("Invalid request parameter", e.getMessage());
+ assertEquals("Could not set 'ranking.softtimeout." + key + "' to '" + value +"'", e.getCause().getMessage());
+ assertEquals(key + " must be in the range [0.0, 1.0]. It is " + value, e.getCause().getCause().getMessage());
+ }
+ }
+ @Test
+ public void testLimits() {
+ verifyException("factor", "-0.1");
+ verifyException("factor", "1.1");
+ verifyException("tailcost", "-0.1");
+ verifyException("tailcost", "1.1");
+ }
+}
diff --git a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
index eaaf87bc035..ac1da3ada1c 100644
--- a/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java
@@ -100,6 +100,7 @@ public class QueryTestCase {
assertNotSame(q.getRanking().getProperties(), p.getRanking().getProperties());
assertNotSame(q.getRanking().getMatchPhase(), p.getRanking().getMatchPhase());
assertNotSame(q.getRanking().getMatchPhase().getDiversity(), p.getRanking().getMatchPhase().getDiversity());
+ assertNotSame(q.getRanking().getSoftTimeout(), p.getRanking().getSoftTimeout());
assertNotSame(q.getPresentation(), p.getPresentation());
assertNotSame(q.getPresentation().getHighlight(), p.getPresentation().getHighlight());