diff options
author | Kaushik Lingarkar <kaushik.lingarkar@linaro.org> | 2022-09-14 10:34:14 -0700 |
---|---|---|
committer | Kaushik Lingarkar <kaushik.lingarkar@linaro.org> | 2022-09-14 10:41:58 -0700 |
commit | 068990cb2a33d1f2801ad429fb63168a2d8f8e91 (patch) | |
tree | 15ab617713aa91693ef9e2e542507ddbde4f3886 | |
parent | 1f0a20d24ccad92ea548c1892b381dee7adc05d4 (diff) |
Improve test coverage for no-limit query pagination
no-limit query pagination was introduced in Ifb1f6f54
but a test could not be added in that change as the
fake index implementation did not allow it.
Release-Notes: skip
Change-Id: If088f45597b9d2bcdbe8f9a7ea2d0d3e4c2744ed
-rw-r--r-- | javatests/com/google/gerrit/server/query/change/FakeQueryChangesTest.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/javatests/com/google/gerrit/server/query/change/FakeQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/FakeQueryChangesTest.java index ef7a3fbd09..01ae9601e5 100644 --- a/javatests/com/google/gerrit/server/query/change/FakeQueryChangesTest.java +++ b/javatests/com/google/gerrit/server/query/change/FakeQueryChangesTest.java @@ -15,13 +15,16 @@ package com.google.gerrit.server.query.change; import static com.google.common.truth.Truth.assertThat; +import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowCapability; import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.block; +import static com.google.gerrit.common.data.GlobalCapability.QUERY_LIMIT; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; import com.google.gerrit.acceptance.UseClockStep; import com.google.gerrit.entities.Permission; import com.google.gerrit.entities.Project; import com.google.gerrit.index.testing.AbstractFakeIndex; +import com.google.gerrit.server.config.AllProjectsName; import com.google.gerrit.server.index.change.ChangeIndexCollection; import com.google.gerrit.testing.InMemoryModule; import com.google.gerrit.testing.InMemoryRepositoryManager; @@ -40,6 +43,7 @@ import org.junit.Test; */ public abstract class FakeQueryChangesTest extends AbstractQueryChangesTest { @Inject private ChangeIndexCollection changeIndexCollection; + @Inject protected AllProjectsName allProjects; @Override protected Injector createInjector() { @@ -74,4 +78,31 @@ public abstract class FakeQueryChangesTest extends AbstractQueryChangesTest { // only 1 index search is expected. assertThat(idx.getQueryCount()).isEqualTo(1); } + + @Test + @UseClockStep + @SuppressWarnings("unchecked") + public void noLimitQueryPaginates() throws Exception { + TestRepository<InMemoryRepositoryManager.Repo> testRepo = createProject("repo"); + // create 4 changes + insert(testRepo, newChange(testRepo)); + insert(testRepo, newChange(testRepo)); + insert(testRepo, newChange(testRepo)); + insert(testRepo, newChange(testRepo)); + + // Set queryLimit to 2 + projectOperations + .project(allProjects) + .forUpdate() + .add(allowCapability(QUERY_LIMIT).group(REGISTERED_USERS).range(0, 2)) + .update(); + + AbstractFakeIndex idx = (AbstractFakeIndex) changeIndexCollection.getSearchIndex(); + + // 2 index searches are expected. The first index search will run with size 2 (i.e. + // the configured query-limit), and then we will paginate to get the remaining 2 + // changes with the second index search. + newQuery("status:new").withNoLimit().get(); + assertThat(idx.getQueryCount()).isEqualTo(2); + } } |