summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2020-09-03 23:46:50 +0200
committerGitHub <noreply@github.com>2020-09-03 23:46:50 +0200
commit9a735030cd58e7f7ce7c2cd9bcaae121089e6ee7 (patch)
treede78463f39e6fc888dc785f65da2f170b173500a /container-search/src/test/java
parent2a238d333516e658eb96f02af2ae27d91ac4bd1a (diff)
parent79224ea5f1d35892cb8e5380693f4f350924bdfe (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.java37
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);
}