diff options
Diffstat (limited to 'container-search/src/test/java/com/yahoo')
12 files changed, 67 insertions, 122 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java index c9773008e05..ec586e67763 100644 --- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/FastSearcherTestCase.java @@ -491,7 +491,7 @@ public class FastSearcherTestCase { } private void assertForceSinglePassIs(boolean expected, Query query) { - for (GroupingRequest request : query.getSelect().getGrouping()) + for (GroupingRequest request : GroupingRequest.getRequests(query)) assertForceSinglePassIs(expected, request.getRootOperation()); } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java index 90459fe614f..8de704a8a0e 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingQueryParserTestCase.java @@ -105,6 +105,6 @@ public class GroupingQueryParserTestCase { query.properties().set(GroupingQueryParser.PARAM_CONTINUE, continuation); query.properties().set(GroupingQueryParser.PARAM_TIMEZONE, timeZone); new Execution(new GroupingQueryParser(), Execution.Context.createContextStub()).search(query); - return query.getSelect().getGrouping(); + return GroupingRequest.getRequests(query); } } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java index 8b1bbb6842e..494602be7b3 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java @@ -10,10 +10,8 @@ import com.yahoo.search.result.Hit; import org.junit.Test; import java.lang.reflect.Field; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.List; import static org.junit.Assert.*; @@ -28,10 +26,7 @@ public class GroupingRequestTestCase { assertTrue(req.continuations().isEmpty()); Continuation foo = new Continuation() { - @Override - public Continuation copy() { - return null; - } + }; req.continuations().add(foo); assertEquals(Arrays.asList(foo), req.continuations()); @@ -110,22 +105,32 @@ public class GroupingRequestTestCase { @Test public void requireThatGetRequestsReturnsAllRequests() { Query query = new Query(); - assertEquals(Collections.emptyList(), query.getSelect().getGrouping()); + assertEquals(Collections.emptyList(), GroupingRequest.getRequests(query)); GroupingRequest foo = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo), query.getSelect().getGrouping()); + assertEquals(Arrays.asList(foo), GroupingRequest.getRequests(query)); GroupingRequest bar = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo, bar), query.getSelect().getGrouping()); + assertEquals(Arrays.asList(foo, bar), GroupingRequest.getRequests(query)); + } + + @Test + public void requireThatGetRequestThrowsIllegalArgumentOnBadProperty() throws Exception { + Query query = new Query(); + Field propName = GroupingRequest.class.getDeclaredField("PROP_REQUEST"); + propName.setAccessible(true); + query.properties().set((CompoundName)propName.get(null), new Object()); + try { + GroupingRequest.getRequests(query); + fail(); + } catch (IllegalArgumentException e) { + + } } - private static RootGroup newRootGroup(int id) { return new RootGroup(id, new Continuation() { - @Override - public Continuation copy() { - return null; - } + }); } } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/UniqueGroupingSearcherTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/UniqueGroupingSearcherTestCase.java index 22e5196c0c6..b570adc51c6 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/UniqueGroupingSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/UniqueGroupingSearcherTestCase.java @@ -210,7 +210,7 @@ public class UniqueGroupingSearcherTestCase { Result result = new Result(query); if (addGroupingData) { result.hits().add(resultGroup); - query.getSelect().getGrouping().get(0).setResultGroup(resultGroup); + GroupingRequest.getRequests(query).get(0).setResultGroup(resultGroup); result.setTotalHitCount(totalHitCount); } return result; diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java index b8cc25930e2..651321a3b69 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/result/GroupListTestCase.java @@ -31,11 +31,5 @@ public class GroupListTestCase { private static class MyContinuation extends Continuation { - @Override - public Continuation copy() { - return null; - } - } - } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java index 8203691e11e..05a78b71cac 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/result/HitListTestCase.java @@ -31,11 +31,5 @@ public class HitListTestCase { private static class MyContinuation extends Continuation { - @Override - public Continuation copy() { - return null; - } - } - } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java index 657c169720e..85b8ff7a6d5 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java @@ -167,15 +167,8 @@ public class HitRendererTestCase { } @Override - public Continuation copy() { - return null; - } - - @Override public String toString() { return str; } - } - } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java index b9887495940..6a6741ae1b4 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/CompositeContinuationTestCase.java @@ -109,11 +109,6 @@ public class CompositeContinuationTestCase { private static class MyContinuation extends EncodableContinuation { @Override - public EncodableContinuation copy() { - return null; - } - - @Override public void encode(IntegerEncoder out) { } diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java index 161c3a24801..038df42bd28 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java @@ -162,10 +162,7 @@ public class GroupingTransformTestCase { GroupingTransform transform = newTransform(); try { transform.addContinuation(new Continuation() { - @Override - public Continuation copy() { - return null; - } + }); fail(); } catch (UnsupportedOperationException e) { diff --git a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java index 726d5cb76be..caad1c76362 100644 --- a/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/rendering/JsonRendererTestCase.java @@ -790,11 +790,6 @@ public class JsonRendererTestCase { Result r = newEmptyResult(); RootGroup rg = new RootGroup(0, new Continuation() { @Override - public Continuation copy() { - return null; - } - - @Override public String toString() { return "AAAA"; } @@ -802,22 +797,12 @@ public class JsonRendererTestCase { GroupList gl = new GroupList("customer"); gl.continuations().put("prev", new Continuation() { @Override - public Continuation copy() { - return null; - } - - @Override public String toString() { return "BBBB"; } }); gl.continuations().put("next", new Continuation() { @Override - public Continuation copy() { - return null; - } - - @Override public String toString() { return "CCCC"; } @@ -875,11 +860,6 @@ public class JsonRendererTestCase { Result r = newEmptyResult(); RootGroup rg = new RootGroup(0, new Continuation() { @Override - public Continuation copy() { - return null; - } - - @Override public String toString() { return "AAAA"; } diff --git a/container-search/src/test/java/com/yahoo/search/yql/MinimalQueryInserterTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/MinimalQueryInserterTestCase.java index b23e25e173e..e5dbe10a0e4 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/MinimalQueryInserterTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/MinimalQueryInserterTestCase.java @@ -329,8 +329,9 @@ public class MinimalQueryInserterTestCase { private static void assertGrouping(String expected, Query query) { List<String> actual = new ArrayList<>(); - for (GroupingRequest request : query.getSelect().getGrouping()) + for (GroupingRequest request : GroupingRequest.getRequests(query)) { actual.add(request.continuations().toString() + request.getRootOperation()); + } assertEquals(expected, actual.toString()); } diff --git a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java b/container-search/src/test/java/com/yahoo/select/SelectParserTestCase.java index 6871e26b96a..031ba386ad4 100644 --- a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java +++ b/container-search/src/test/java/com/yahoo/select/SelectParserTestCase.java @@ -15,14 +15,14 @@ import com.yahoo.prelude.query.WeakAndItem; import com.yahoo.prelude.query.WordAlternativesItem; import com.yahoo.prelude.query.WordItem; import com.yahoo.search.Query; -import com.yahoo.search.grouping.GroupingRequest; -import com.yahoo.search.grouping.request.AllOperation; +import com.yahoo.search.federation.ProviderConfig; import com.yahoo.search.query.QueryTree; import com.yahoo.search.query.Select; import com.yahoo.search.query.SelectParser; import com.yahoo.search.query.parser.Parsable; import com.yahoo.search.query.parser.ParserEnvironment; import com.yahoo.search.yql.VespaGroupingStep; +import org.apache.http.client.utils.URIBuilder; import org.json.JSONException; import org.json.JSONObject; import org.junit.Test; @@ -33,23 +33,24 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; + /** - * Tests Query.Select + * Specification for the conversion of Select expressions to Vespa search queries. * * @author henrhoi - * @author bratseth */ -public class SelectTestCase { + +public class SelectParserTestCase { private final SelectParser parser = new SelectParser(new ParserEnvironment()); - //------------------------------------------------------------------- "where" tests + + /** WHERE TESTS */ @Test public void test_contains() throws Exception { @@ -135,6 +136,7 @@ public class SelectTestCase { "+title:madonna -title:saint"); } + @Test public void testLessThan() throws JSONException { JSONObject range_json = new JSONObject(); @@ -163,6 +165,7 @@ public class SelectTestCase { "price:>500"); } + @Test public void testLessThanOrEqual() throws JSONException { JSONObject range_json = new JSONObject(); @@ -323,6 +326,7 @@ public class SelectTestCase { assertEquals(3, origin.end); } + @Test public void testSameElement() { assertParse("{ \"contains\": [ \"baz\", {\"sameElement\" : [ { \"contains\" : [\"f1\", \"a\"] }, { \"contains\" : [\"f2\", \"b\"] } ]} ] }", @@ -416,7 +420,7 @@ public class SelectTestCase { WordItem first = (WordItem)root.getItem(0); WordItem second = (WordItem)root.getItem(1); WordItem third = (WordItem)root.getItem(2); - assertEquals(third, first.getConnectedItem()); + assertTrue(first.getConnectedItem() == third); assertEquals(first.getConnectivity(), 7.0d, 1E-6); assertNull(second.getConnectedItem()); @@ -553,17 +557,17 @@ public class SelectTestCase { @Test public void testAffixItems() { assertRootClass("{ \"contains\" : { \"children\" : [\"baz\", \"colors\"], \"attributes\" : {\"suffix\": true} } }", - SuffixItem.class); + SuffixItem.class); assertRootClass("{ \"contains\" : { \"children\" : [\"baz\", \"colors\"], \"attributes\" : {\"prefix\": true} } }", - PrefixItem.class); + PrefixItem.class); assertRootClass("{ \"contains\" : { \"children\" : [\"baz\", \"colors\"], \"attributes\" : {\"substring\": true} } }", - SubstringItem.class); + SubstringItem.class); assertParseFail("{ \"contains\" : { \"children\" : [\"baz\", \"colors\"], \"attributes\" : {\"suffix\": true, \"prefix\" : true} } }", - new IllegalArgumentException("Only one of prefix, substring and suffix can be set.")); + new IllegalArgumentException("Only one of prefix, substring and suffix can be set.")); assertParseFail("{ \"contains\" : { \"children\" : [\"baz\", \"colors\"], \"attributes\" : {\"suffix\": true, \"substring\" : true} } }", - new IllegalArgumentException("Only one of prefix, substring and suffix can be set.")); + new IllegalArgumentException("Only one of prefix, substring and suffix can be set.")); } @Test @@ -637,7 +641,7 @@ public class SelectTestCase { checkWordAlternativesContent(alternatives); } - //------------------------------------------------------------------- grouping tests + /** GROUPING TESTS */ @Test public void testGrouping(){ @@ -655,7 +659,9 @@ public class SelectTestCase { assertGrouping(expected, parseGrouping(grouping)); } - //------------------------------------------------------------------- Other tests + + + /** OTHER TESTS */ @Test public void testOverridingOtherQueryTree() { @@ -663,15 +669,16 @@ public class SelectTestCase { assertEquals("default:query", query.getModel().getQueryTree().toString()); assertEquals(Query.Type.ALL, query.getModel().getType()); - query.getSelect().setWhereString("{\"contains\" : [\"default\", \"select\"] }"); + query.getSelect().setWhere("{\"contains\" : [\"default\", \"select\"] }"); assertEquals("default:select", query.getModel().getQueryTree().toString()); assertEquals(Query.Type.SELECT, query.getModel().getType()); } + @Test public void testOverridingWhereQueryTree() { - Query query = new Query("?query=default:query"); - query.getSelect().setWhereString("{\"contains\" : [\"default\", \"select\"] }"); + Query query = new Query(); + query.getSelect().setWhere("{\"contains\" : [\"default\", \"select\"] }"); assertEquals("default:select", query.getModel().getQueryTree().toString()); assertEquals(Query.Type.SELECT, query.getModel().getType()); @@ -681,44 +688,10 @@ public class SelectTestCase { assertEquals(Query.Type.ALL, query.getModel().getType()); } - @Test - public void testProgrammaticAssignment() { - Query query = new Query(); - query.getSelect().setGroupingString("[ { \"all\" : { \"group\" : \"time.year(a)\", \"each\" : { \"output\" : \"count()\" } } } ]"); - assertEquals(1, query.getSelect().getGrouping().size()); - assertEquals("all(group(time.year(a)) each(output(count())))", query.getSelect().getGrouping().get(0).getRootOperation().toString()); - // Setting from string resets the grouping expression - query.getSelect().setGroupingString("[ { \"all\" : { \"group\" : \"time.dayofmonth(a)\", \"each\" : { \"output\" : \"count()\" } } } ]"); - assertEquals(1, query.getSelect().getGrouping().size()); - assertEquals("all(group(time.dayofmonth(a)) each(output(count())))", query.getSelect().getGrouping().get(0).getRootOperation().toString()); - } - @Test - public void testConstructionAndClone() { - Query query = new Query(); - query.getSelect().setWhereString("{\"contains\" : [\"default\", \"select\"] }"); - query.getSelect().setGroupingString("[ { \"all\" : { \"group\" : \"time.dayofmonth(a)\", \"each\" : { \"output\" : \"count()\" } } } ]"); - GroupingRequest secondRequest = GroupingRequest.newInstance(query); - assertEquals("default:select", query.getModel().getQueryTree().toString()); - assertEquals(2, query.getSelect().getGrouping().size()); - assertEquals("all(group(time.dayofmonth(a)) each(output(count())))", query.getSelect().getGrouping().get(0).toString()); - - Query clone = query.clone(); - assertNotSame(query.getSelect(), clone.getSelect()); - assertNotSame(query.getSelect().getGrouping(), clone.getSelect().getGrouping()); - assertNotSame(query.getSelect().getGrouping().get(0), clone.getSelect().getGrouping().get(0)); - assertNotSame(query.getSelect().getGrouping().get(1), clone.getSelect().getGrouping().get(1)); - assertEquals(query.getSelect().getWhereString(), clone.getSelect().getWhereString()); - assertEquals(query.getSelect().getGroupingString(), clone.getSelect().getGroupingString()); - assertEquals(query.getSelect().getGrouping().get(0).toString(), clone.getSelect().getGrouping().get(0).toString()); - assertEquals(query.getSelect().getGrouping().get(1).toString(), clone.getSelect().getGrouping().get(1).toString()); - - - } - - //------------------------------------------------------------------- Assert methods + /** Assert-methods */ private void assertParse(String where, String expectedQueryTree) { String queryTree = parseWhere(where).toString(); assertEquals(expectedQueryTree, queryTree); @@ -748,10 +721,13 @@ public class SelectTestCase { assertEquals(expected, actual.toString()); } - //------------------------------------------------------------------- Parse methods + + + + /** Parse-methods*/ private QueryTree parseWhere(String where) { - Select select = new Select(where, "", new Query()); + Select select = new Select(where, ""); return parser.parse(new Parsable().setSelect(select)); } @@ -761,8 +737,17 @@ public class SelectTestCase { return parser.getGroupingSteps(grouping); } - //------------------------------------------------------------------- Other methods + private QueryTree parse(String where, String grouping) { + Select select = new Select(where, grouping); + return parser.parse(new Parsable().setSelect(select)); + } + + + + + + /** Other methods */ private WordItem getRootWord(String yqlQuery) { Item root = parseWhere(yqlQuery).getRoot(); assertTrue(root instanceof WordItem); @@ -790,4 +775,5 @@ public class SelectTestCase { } } + } |