Support querying groups by name and name part

This adds two query operators for group queries:

1. name:
   Exact match on the group name (case-insensitive)
2. inname:
   Prefix match on a group name part (case-insensitive)

Change-Id: Iedec2574690881470ba7f0ff7cd12263e466352f
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2017-01-03 16:15:01 +01:00
parent fadf363ef0
commit a45b072688
6 changed files with 82 additions and 7 deletions

View File

@@ -60,6 +60,7 @@ import org.junit.rules.TestName;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@Ignore
public abstract class AbstractQueryGroupsTest extends GerritServerTests {
@@ -184,6 +185,33 @@ public abstract class AbstractQueryGroupsTest extends GerritServerTests {
assertQuery("uuid:" + group.id, group);
}
@Test
public void byName() throws Exception {
assertQuery("name:non-existing");
GroupInfo group = createGroup(name("group"));
assertQuery("name:" + group.name, group);
assertQuery("name:" + group.name.toUpperCase(Locale.US), group);
// only exact match
GroupInfo groupWithHyphen = createGroup(name("group-with-hyphen"));
createGroup(name("group-no-match-with-hyphen"));
assertQuery("name:" + groupWithHyphen.name, groupWithHyphen);
}
@Test
public void byInname() throws Exception {
String namePart = testName.getMethodName();
GroupInfo group1 = createGroup("group-" + namePart);
GroupInfo group2 = createGroup("group-" + namePart + "-2");
GroupInfo group3 = createGroup("group-" + namePart + "3");
assertQuery("inname:" + namePart, group1, group2, group3);
assertQuery("inname:" + namePart.toUpperCase(Locale.US), group1, group2,
group3);
assertQuery("inname:" + namePart.toLowerCase(Locale.US), group1, group2,
group3);
}
@Test
public void withLimit() throws Exception {
GroupInfo group1 = createGroup(name("group1"));