Add query tests for has:edit Change-Id: I1dccb65fc070b56988bc1783c4b2db673f3f13fc
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java index a1a5fbc..5899e11 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java +++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -62,6 +62,7 @@ import com.google.gerrit.server.change.ChangeInserter; import com.google.gerrit.server.change.ChangeTriplet; import com.google.gerrit.server.change.PatchSetInserter; +import com.google.gerrit.server.edit.ChangeEditModifier; import com.google.gerrit.server.git.BatchUpdate; import com.google.gerrit.server.git.validators.CommitValidators; import com.google.gerrit.server.index.change.ChangeField; @@ -87,6 +88,7 @@ import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.ObjectInserter; +import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.util.SystemReader; import org.junit.After; @@ -119,6 +121,7 @@ @Inject protected ChangeQueryBuilder queryBuilder; @Inject protected GerritApi gApi; @Inject protected IdentifiedUser.GenericFactory userFactory; + @Inject protected ChangeEditModifier changeEditModifier; @Inject protected ChangeIndexCollection indexes; @Inject protected ChangeIndexer indexer; @Inject protected InMemoryDatabase schemaFactory; @@ -1496,6 +1499,35 @@ } @Test + public void hasEdit() throws Exception { + Account.Id user1 = createAccount("user1"); + Account.Id user2 = createAccount("user2"); + TestRepository<Repo> repo = createProject("repo"); + Change change1 = insert(repo, newChange(repo)); + PatchSet ps1 = db.patchSets().get(change1.currentPatchSetId()); + Change change2 = insert(repo, newChange(repo)); + PatchSet ps2 = db.patchSets().get(change2.currentPatchSetId()); + + requestContext.setContext(newRequestContext(user1)); + assertQuery("has:edit"); + assertThat(changeEditModifier.createEdit(change1, ps1)) + .isEqualTo(RefUpdate.Result.NEW); + assertThat(changeEditModifier.createEdit(change2, ps2)) + .isEqualTo(RefUpdate.Result.NEW); + + requestContext.setContext(newRequestContext(user2)); + assertQuery("has:edit"); + assertThat(changeEditModifier.createEdit(change2, ps2)) + .isEqualTo(RefUpdate.Result.NEW); + + requestContext.setContext(newRequestContext(user1)); + assertQuery("has:edit", change2, change1); + + requestContext.setContext(newRequestContext(user2)); + assertQuery("has:edit", change2); + } + + @Test public void byCommitsOnBranchNotMerged() throws Exception { TestRepository<Repo> repo = createProject("repo"); int n = 10;