diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-11-25 14:32:21 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-01-25 18:55:21 +0100 |
commit | c19fb20b2bdb12ed6e1c1aa5cc7b9e7efb033b84 (patch) | |
tree | 538ad4eba247a9d74ac5c53befc80fa4898e967e /container-search/src/test/java/com/yahoo/search | |
parent | 29ee9162845ffaeb01f22a242d2fc7ab9593530e (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.java | 45 | ||||
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/test/QueryTestCase.java | 1 |
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()); |