From 8d4d0efd296483e633a0b119c8cd45365586db4f Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 8 Sep 2022 12:27:52 +0200 Subject: Add tests --- .../java/com/yahoo/search/query/SortingTestCase.java | 18 ++++++++++++++++++ .../java/com/yahoo/search/yql/YqlParserTestCase.java | 14 +++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) (limited to 'container-search/src/test') diff --git a/container-search/src/test/java/com/yahoo/search/query/SortingTestCase.java b/container-search/src/test/java/com/yahoo/search/query/SortingTestCase.java index facb620b63b..8422196638a 100644 --- a/container-search/src/test/java/com/yahoo/search/query/SortingTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/query/SortingTestCase.java @@ -5,6 +5,12 @@ import com.ibm.icu.lang.UScript; import com.ibm.icu.text.Collator; import com.ibm.icu.text.RuleBasedCollator; import com.ibm.icu.util.ULocale; +import com.yahoo.prelude.Index; +import com.yahoo.prelude.IndexFacts; +import com.yahoo.prelude.IndexModel; +import com.yahoo.prelude.SearchDefinition; +import com.yahoo.search.Query; +import com.yahoo.search.searchchain.Execution; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -16,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.*; * @author baldersheim */ public class SortingTestCase { + @Test void validAttributeName() { assertNotNull(Sorting.fromString("a")); @@ -33,6 +40,17 @@ public class SortingTestCase { } } + @Test + void aliasesAreRecognized() { + Query query = new Query(); + var schema = new SearchDefinition("test"); + schema.addIndex(new Index("a")); + schema.addAlias("aliasOfA", "a"); + Execution execution = new Execution(Execution.Context.createContextStub(new IndexFacts(new IndexModel(schema)))); + query.getModel().setExecution(execution); + assertEquals("a", new Sorting("aliasOfA", query).fieldOrders().get(0).getFieldName()); + } + @Test void requireThatChineseSortCorrect() { requireThatChineseHasCorrectRules(Collator.getInstance(new ULocale("zh"))); diff --git a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java index 935b1aa62f9..5beea5352aa 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/YqlParserTestCase.java @@ -980,20 +980,24 @@ public class YqlParserTestCase { @Test void testFieldAliases() { IndexInfoConfig modelConfig = new IndexInfoConfig(new IndexInfoConfig.Builder().indexinfo(new Indexinfo.Builder() - .name("music").command(new Command.Builder().indexname("title").command("index")) - .alias(new Alias.Builder().alias("song").indexname("title")))); + .name("music") + .command(new Command.Builder().indexname("title").command("index")) + .command(new Command.Builder().indexname("year").command("attribute")) + .alias(new Alias.Builder().alias("song").indexname("title")) + .alias(new Alias.Builder().alias("from").indexname("year")))); IndexModel model = new IndexModel(modelConfig, (QrSearchersConfig) null); IndexFacts indexFacts = new IndexFacts(model); ParserEnvironment parserEnvironment = new ParserEnvironment().setIndexFacts(indexFacts); YqlParser configuredParser = new YqlParser(parserEnvironment); QueryTree x = configuredParser.parse(new Parsable() - .setQuery("select * from sources * where title contains \"a\" and song contains \"b\"")); + .setQuery("select * from sources * where title contains \"a\" and song contains \"b\" order by \"from\"")); List terms = QueryTree.getPositiveTerms(x); assertEquals(2, terms.size()); - for (IndexedItem term : terms) { + for (IndexedItem term : terms) assertEquals("title", term.getIndexName()); - } + assertEquals(1, configuredParser.getSorting().fieldOrders().size()); + assertEquals("year", configuredParser.getSorting().fieldOrders().get(0).getFieldName()); } @Test -- cgit v1.2.3