diff options
author | Jon Bratseth <bratseth@oath.com> | 2020-09-03 23:46:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-03 23:46:50 +0200 |
commit | 9a735030cd58e7f7ce7c2cd9bcaae121089e6ee7 (patch) | |
tree | de78463f39e6fc888dc785f65da2f170b173500a /container-search/src/test/java | |
parent | 2a238d333516e658eb96f02af2ae27d91ac4bd1a (diff) | |
parent | 79224ea5f1d35892cb8e5380693f4f350924bdfe (diff) |
Merge pull request #14273 from vespa-engine/bratseth/continuation-references
Continuation references
Diffstat (limited to 'container-search/src/test/java')
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java index 75517a25909..06160e1c6d5 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java @@ -15,6 +15,8 @@ import com.yahoo.search.Result; import com.yahoo.search.Searcher; import com.yahoo.search.searchchain.Execution; +import java.util.Arrays; + import static com.yahoo.container.protect.Error.INVALID_QUERY_PARAMETER; /** @@ -204,13 +206,40 @@ public class UserInputTestCase { assertEquals("select * from sources * where year > 1980;", query.yqlRepresentation()); } + @Test + public void testReferenceInContinuation() { + URIBuilder builder = searchUri(); + builder.setParameter("continuation", "BCBCBCBEBG"); + builder.setParameter("yql", + "select * from sources * where myfield contains 'token'" + + "| [{'continuations':[@continuation, 'BCBKCBACBKCCK'] }] all(group(f) each(output(count())));"); + Query query = searchAndAssertNoErrors(builder); + assertEquals("select * from sources * where myfield contains \"token\" | [{ 'continuations':['BCBCBCBEBG', 'BCBKCBACBKCCK'] }]all(group(f) each(output(count())));", query.yqlRepresentation()); + } + + @Test + public void testReferenceInEquiv() { + URIBuilder builder = searchUri(); + builder.setParameter("term", "A"); + builder.setParameter("yql", + "select foo from bar where fieldName contains equiv(@term,'B');"); + Query query = searchAndAssertNoErrors(builder); + assertEquals("select foo from bar where fieldName contains equiv(\"A\", \"B\");", query.yqlRepresentation()); + } + private Query searchAndAssertNoErrors(URIBuilder builder) { Query query = new Query(builder.toString()); Result r = execution.search(query); - assertNull(r.hits().getError()); + assertNull(stackTraceIfAny(r), r.hits().getError()); return query; } + private String stackTraceIfAny(Result r) { + if (r.hits().getError() == null) return ""; + if (r.hits().getError().getCause() == null) return ""; + return Arrays.toString(r.hits().getError().getCause().getStackTrace()); + } + private URIBuilder searchUri() { URIBuilder builder = new URIBuilder(); builder.setPath("search/"); @@ -220,8 +249,7 @@ public class UserInputTestCase { @Test public void testEmptyUserInput() { URIBuilder builder = searchUri(); - builder.setParameter("yql", - "select * from sources * where userInput(\"\");"); + builder.setParameter("yql", "select * from sources * where userInput(\"\");"); assertQueryFails(builder); } @@ -229,8 +257,7 @@ public class UserInputTestCase { public void testEmptyUserInputFromQueryProperty() { URIBuilder builder = searchUri(); builder.setParameter("foo", ""); - builder.setParameter("yql", - "select * from sources * where userInput(@foo);"); + builder.setParameter("yql", "select * from sources * where userInput(@foo);"); assertQueryFails(builder); } |