diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-11-10 23:32:31 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-11-10 23:32:31 +0100 |
commit | 094be744d6706e02c7299ac1c92b49a0b13a24c5 (patch) | |
tree | 297d1df9650694c26fc11aceff5444ed445e9096 /container-search/src/test/java/com/yahoo/search/query | |
parent | 0c68b00b2d3a9ddc191ed1733ba2f8699d1c3dc1 (diff) |
Support setting specific variants unoverridable
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/query')
6 files changed, 41 insertions, 8 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/config/test/XmlReadingTestCase.java b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/XmlReadingTestCase.java index 445073ced3a..253c6bd8792 100644 --- a/container-search/src/test/java/com/yahoo/search/query/profile/config/test/XmlReadingTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/XmlReadingTestCase.java @@ -219,6 +219,19 @@ public class XmlReadingTestCase { } @Test + public void testQueryProfileVariantsWithOverridableFalse() { + QueryProfileXMLReader reader = new QueryProfileXMLReader(); + CompiledQueryProfileRegistry registry = reader.read("src/test/java/com/yahoo/search/query/profile/config/test/variants/").compile(); + CompiledQueryProfile profile = registry.findQueryProfile("default"); + + assertEquals("a.b.c-value", new Query("?d1=d1v", profile).properties().get("a.b.c")); + assertEquals("a.b.c-variant-value", new Query("?d1=d1v&d2=d2v", profile).properties().get("a.b.c")); + + assertTrue(profile.isOverridable(new CompoundName("a.b.c"), Map.of("d1", "d1v"))); + assertFalse(profile.isOverridable(new CompoundName("a.b.c"), Map.of("d1", "d1v", "d2", "d2v"))); + } + + @Test public void testNewsFE1() { CompiledQueryProfileRegistry registry=new QueryProfileXMLReader().read("src/test/java/com/yahoo/search/query/profile/config/test/newsfe").compile(); diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/default.xml b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/default.xml new file mode 100644 index 00000000000..95ee7d3d484 --- /dev/null +++ b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/default.xml @@ -0,0 +1,4 @@ +<query-profile id="default"> + <dimensions>d1</dimensions> + <field name="a.b"><ref>main</ref></field> +</query-profile> diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/inherited.xml b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/inherited.xml new file mode 100644 index 00000000000..1c1102ab5db --- /dev/null +++ b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/inherited.xml @@ -0,0 +1,10 @@ +<query-profile id="inherited"> + <dimensions>d2</dimensions> + + <field name="c">a.b.c-value</field> + + <query-profile for="d2v"> + <field name="c" overridable="false">a.b.c-variant-value</field> + </query-profile> + +</query-profile> diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/main.xml b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/main.xml new file mode 100644 index 00000000000..efad3c8dd5c --- /dev/null +++ b/container-search/src/test/java/com/yahoo/search/query/profile/config/test/variants/main.xml @@ -0,0 +1,4 @@ +<query-profile id="main"> + <dimensions>d1</dimensions> + <query-profile for="d1v" inherits="inherited" /> +</query-profile> diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileTestCase.java b/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileTestCase.java index eb1584efe84..5598ae65990 100644 --- a/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/query/profile/test/QueryProfileTestCase.java @@ -6,6 +6,7 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.processing.request.CompoundName; import com.yahoo.processing.request.Properties; import com.yahoo.search.Query; +import com.yahoo.search.query.profile.DimensionValues; import com.yahoo.search.query.profile.QueryProfile; import com.yahoo.search.query.profile.QueryProfileProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; @@ -331,7 +332,7 @@ public class QueryProfileTestCase { public void testInstanceOverridable() { QueryProfile profile = new QueryProfile("root/unoverridableIndex"); profile.set("model.defaultIndex","default", null); - profile.setOverridable("model.defaultIndex", false,null); + profile.setOverridable("model.defaultIndex", false, DimensionValues.empty); assertFalse(profile.isDeclaredOverridable("model.defaultIndex",null)); @@ -351,7 +352,7 @@ public class QueryProfileTestCase { QueryProfile profile = new QueryProfile("root/unoverridableIndex"); profile.setDimensions(new String[] {"x"}); profile.set("model.defaultIndex","default", null); - profile.setOverridable("model.defaultIndex",false,null); + profile.setOverridable("model.defaultIndex", false, DimensionValues.empty); assertFalse(profile.isDeclaredOverridable("model.defaultIndex",null)); @@ -370,7 +371,7 @@ public class QueryProfileTestCase { QueryProfile profile=new QueryProfile("test"); profile.setDimensions(new String[] {"x"}); profile.set("a","original", null); - profile.setOverridable("a",false,null); + profile.setOverridable("a", false, DimensionValues.empty); assertFalse(profile.isDeclaredOverridable("a",null)); @@ -380,12 +381,12 @@ public class QueryProfileTestCase { @Test public void testSimpleInstanceOverridableWithVariants2() { - QueryProfile profile=new QueryProfile("test"); + QueryProfile profile = new QueryProfile("test"); profile.setDimensions(new String[] {"x"}); - profile.set("a","original",new String[] {"x1"}, null); - profile.setOverridable("a",false,null); + profile.set("a", "original", new String[] {"x1"}, null); + profile.setOverridable("a", false, DimensionValues.empty); - assertFalse(profile.isDeclaredOverridable("a",null)); + assertFalse(profile.isDeclaredOverridable("a", null)); Query query = new Query(HttpRequest.createTestRequest("?x=x1&a=overridden", Method.GET), profile.compile(null)); assertEquals("original",query.properties().get("a")); diff --git a/container-search/src/test/java/com/yahoo/search/query/profile/types/test/OverrideTestCase.java b/container-search/src/test/java/com/yahoo/search/query/profile/types/test/OverrideTestCase.java index aa6049a45ec..c0f1dfeca0b 100644 --- a/container-search/src/test/java/com/yahoo/search/query/profile/types/test/OverrideTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/query/profile/types/test/OverrideTestCase.java @@ -5,6 +5,7 @@ import com.yahoo.jdisc.http.HttpRequest.Method; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.component.ComponentId; import com.yahoo.search.Query; +import com.yahoo.search.query.profile.DimensionValues; import com.yahoo.search.query.profile.QueryProfile; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.search.query.profile.compiled.CompiledQueryProfileRegistry; @@ -168,7 +169,7 @@ public class OverrideTestCase { QueryProfile test = new QueryProfile("test"); test.setType(type); test.set("myInteger", 1, registry); - test.setOverridable("myInteger", false, null); + test.setOverridable("myInteger", false, DimensionValues.empty); registry.register(test); QueryProfile profile=new QueryProfile("profile"); |