use of com.yahoo.search.query.profile.QueryProfile in project vespa by vespa-engine.
the class PatchMatchingTestCase method testPatchMatchingVersions.
/**
* Check that the path matching works with versioned profiles
*/
public void testPatchMatchingVersions() {
QueryProfileType type = new QueryProfileType("type");
type.setMatchAsPath(true);
QueryProfile a = new QueryProfile("a");
a.setType(type);
QueryProfile abee11 = new QueryProfile("a/bee:1.1");
abee11.setType(type);
abee11.addInherited(a);
QueryProfile abee13 = new QueryProfile("a/bee:1.3");
abee13.setType(type);
abee13.addInherited(a);
QueryProfile abeece = new QueryProfile("a/bee/ce");
abeece.setType(type);
abeece.addInherited(abee13);
QueryProfileRegistry registry = new QueryProfileRegistry();
registry.register(a);
registry.register(abee11);
registry.register(abee13);
registry.register(abeece);
registry.freeze();
// No "default" registered
assertNull(registry.findQueryProfile(null));
assertEquals("a", registry.findQueryProfile("a").getId().getName());
assertEquals("a/bee:1.1", registry.findQueryProfile("a/bee:1.1").getId().toString());
assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee").getId().toString());
assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee:1").getId().toString());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee/eee/").getId().getName());
assertEquals("a/bee:1.1", registry.findQueryProfile("a/bee/cede:1.1").getId().toString());
assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee/cede").getId().toString());
assertEquals("a/bee:1.3", registry.findQueryProfile("a/bee/cede:1").getId().toString());
assertEquals("a", registry.findQueryProfile("a/foo/bee/cede").getId().getName());
assertNull(registry.findQueryProfile("abee"));
}
use of com.yahoo.search.query.profile.QueryProfile in project vespa by vespa-engine.
the class PatchMatchingTestCase method testQuirkyNames.
public void testQuirkyNames() {
QueryProfileType type = new QueryProfileType("type");
type.setMatchAsPath(true);
QueryProfile a = new QueryProfile("/a");
a.setType(type);
QueryProfile abee = new QueryProfile("/a//bee");
abee.setType(type);
abee.addInherited(a);
QueryProfile abeece = new QueryProfile("/a//bee/ce/");
abeece.setType(type);
abeece.addInherited(abee);
QueryProfileRegistry registry = new QueryProfileRegistry();
registry.register(a);
registry.register(abee);
registry.register(abeece);
registry.freeze();
// No "default" registered
assertNull(registry.findQueryProfile(null));
assertEquals("/a", registry.findQueryProfile("/a").getId().getName());
assertNull(registry.findQueryProfile("a"));
assertEquals("/a//bee", registry.findQueryProfile("/a//bee").getId().getName());
assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/").getId().getName());
assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce").getId().getName());
assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/dee").getId().getName());
assertEquals("/a//bee/ce/", registry.findQueryProfile("/a//bee/ce/dee/eee/").getId().getName());
assertEquals("/a//bee", registry.findQueryProfile("/a//bee/cede").getId().getName());
assertEquals("/a", registry.findQueryProfile("/a/foo/bee/cede").getId().getName());
assertEquals("/a", registry.findQueryProfile("/a/bee").getId().getName());
assertNull(registry.findQueryProfile("abee"));
}
use of com.yahoo.search.query.profile.QueryProfile in project vespa by vespa-engine.
the class PatchMatchingTestCase method testPatchMatching.
public void testPatchMatching() {
QueryProfileType type = new QueryProfileType("type");
type.setMatchAsPath(true);
QueryProfile a = new QueryProfile("a");
a.setType(type);
QueryProfile abee = new QueryProfile("a/bee");
abee.setType(type);
abee.addInherited(a);
QueryProfile abeece = new QueryProfile("a/bee/ce");
abeece.setType(type);
abeece.addInherited(abee);
QueryProfileRegistry registry = new QueryProfileRegistry();
registry.register(a);
registry.register(abee);
registry.register(abeece);
registry.freeze();
// No "default" registered
assertNull(registry.findQueryProfile(null));
assertEquals("a", registry.findQueryProfile("a").getId().getName());
assertEquals("a/bee", registry.findQueryProfile("a/bee").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce/dee/eee/").getId().getName());
assertEquals("a/bee", registry.findQueryProfile("a/bee/cede").getId().getName());
assertEquals("a", registry.findQueryProfile("a/foo/bee/cede").getId().getName());
assertNull(registry.findQueryProfile("abee"));
}
use of com.yahoo.search.query.profile.QueryProfile in project vespa by vespa-engine.
the class PatchMatchingTestCase method testNoPatchMatching.
public void testNoPatchMatching() {
QueryProfileType type = new QueryProfileType("type");
// Default, but set here for clarity
type.setMatchAsPath(false);
QueryProfile a = new QueryProfile("a");
a.setType(type);
QueryProfile abee = new QueryProfile("a/bee");
abee.setType(type);
abee.addInherited(a);
QueryProfile abeece = new QueryProfile("a/bee/ce");
abeece.setType(type);
abeece.addInherited(abee);
QueryProfileRegistry registry = new QueryProfileRegistry();
registry.register(a);
registry.register(abee);
registry.register(abeece);
registry.freeze();
// No "default" registered
assertNull(registry.findQueryProfile(null));
assertEquals("a", registry.findQueryProfile("a").getId().getName());
assertEquals("a/bee", registry.findQueryProfile("a/bee").getId().getName());
assertEquals("a/bee/ce", registry.findQueryProfile("a/bee/ce").getId().getName());
// Different from test above
assertNull(registry.findQueryProfile("a/bee/ce/dee"));
// Different from test above
assertNull(registry.findQueryProfile("a/bee/ce/dee/eee/"));
// Different from test above
assertNull(registry.findQueryProfile("a/bee/cede"));
// Different from test above
assertNull(registry.findQueryProfile("a/foo/bee/cede"));
assertNull(registry.findQueryProfile("abee"));
}
use of com.yahoo.search.query.profile.QueryProfile in project vespa by vespa-engine.
the class QueryProfileTypeTestCase method testTypedOverridingOfQueryProfileReferencesNonStrictThroughQueryNestedInAnUntypedProfile.
/**
* Tests overriding a subprofile as an id string through the query.
* Here there exists a user profile already, and then a new one is overwritten.
* The whole thing is accessed through a two levels of nontyped top-level profiles
*/
public void testTypedOverridingOfQueryProfileReferencesNonStrictThroughQueryNestedInAnUntypedProfile() {
QueryProfile topMap = new QueryProfile("topMap");
QueryProfile subMap = new QueryProfile("topSubMap");
topMap.set("subMap", subMap, registry);
QueryProfile test = new QueryProfile("test");
test.setType(type);
subMap.set("typeProfile", test, registry);
QueryProfile myUser = new QueryProfile("myUser");
myUser.setType(user);
myUser.set("myUserString", "userValue1", registry);
myUser.set("myUserInteger", 442, registry);
test.set("myUserQueryProfile", myUser, registry);
QueryProfile newUser = new QueryProfile("newUser");
newUser.setType(user);
newUser.set("myUserString", "newUserValue1", registry);
newUser.set("myUserInteger", 845, registry);
registry.register(topMap);
registry.register(subMap);
registry.register(test);
registry.register(myUser);
registry.register(newUser);
CompiledQueryProfileRegistry cRegistry = registry.compile();
Query query = new Query(HttpRequest.createTestRequest("?subMap.typeProfile.myUserQueryProfile=newUser", com.yahoo.jdisc.http.HttpRequest.Method.GET), cRegistry.getComponent("topMap"));
assertEquals(0, query.errors().size());
assertEquals("newUserValue1", query.properties().get("subMap.typeProfile.myUserQueryProfile.myUserString"));
assertEquals(845, query.properties().get("subMap.typeProfile.myUserQueryProfile.myUserInteger"));
}
Aggregations