Merge "GetCheck: Backfill checkers"
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
index 24a0d25..67a3cce 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
@@ -31,6 +31,7 @@
import com.google.gerrit.plugins.checks.api.CheckState;
import com.google.gerrit.plugins.checks.api.CheckerStatus;
import com.google.gerrit.reviewdb.client.PatchSet;
+import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.client.RevId;
import com.google.gerrit.testing.TestTimeUtil;
import com.google.inject.Inject;
@@ -141,6 +142,36 @@
}
@Test
+ public void canCreateCheckForCheckerThatDoesNotApplyToTheProject() throws Exception {
+ Project.NameKey otherProject = createProjectOverAPI("other", null, true, null);
+ CheckerUuid checkerUuid = checkerOperations.newChecker().repository(otherProject).create();
+
+ CheckInput input = new CheckInput();
+ input.checkerUuid = checkerUuid.toString();
+ input.state = CheckState.RUNNING;
+
+ checksApiFactory.revision(patchSetId).create(input);
+
+ CheckKey checkKey = CheckKey.create(project, patchSetId, checkerUuid);
+ assertThat(checkOperations.check(checkKey).exists()).isTrue();
+ }
+
+ @Test
+ public void canCreateCheckForCheckerThatDoesNotApplyToTheChange() throws Exception {
+ CheckerUuid checkerUuid =
+ checkerOperations.newChecker().repository(project).query("message:not-matching").create();
+
+ CheckInput input = new CheckInput();
+ input.checkerUuid = checkerUuid.toString();
+ input.state = CheckState.RUNNING;
+
+ checksApiFactory.revision(patchSetId).create(input);
+
+ CheckKey checkKey = CheckKey.create(project, patchSetId, checkerUuid);
+ assertThat(checkOperations.check(checkKey).exists()).isTrue();
+ }
+
+ @Test
public void cannotCreateCheckWithoutAdministrateCheckers() throws Exception {
requestScopeOperations.setApiUser(user.getId());
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
index 4ce0888..1ed9ca8 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
@@ -25,6 +25,7 @@
import com.google.gerrit.plugins.checks.api.CheckInput;
import com.google.gerrit.plugins.checks.api.CheckState;
import com.google.gerrit.reviewdb.client.PatchSet;
+import com.google.gerrit.reviewdb.client.Project;
import com.google.inject.Inject;
import org.junit.Before;
import org.junit.Test;
@@ -65,6 +66,33 @@
}
@Test
+ public void canUpdateCheckForCheckerThatDoesNotApplyToTheProject() throws Exception {
+ Project.NameKey otherProject = createProjectOverAPI("other", null, true, null);
+ checkerOperations.checker(checkKey.checkerUuid()).forUpdate().repository(otherProject).update();
+
+ CheckInput input = new CheckInput();
+ input.state = CheckState.SUCCESSFUL;
+
+ CheckInfo info = checksApiFactory.revision(patchSetId).id(checkKey.checkerUuid()).update(input);
+ assertThat(info.state).isEqualTo(CheckState.SUCCESSFUL);
+ }
+
+ @Test
+ public void canUpdateCheckForCheckerThatDoesNotApplyToTheChange() throws Exception {
+ checkerOperations
+ .checker(checkKey.checkerUuid())
+ .forUpdate()
+ .query("message:not-matching")
+ .update();
+
+ CheckInput input = new CheckInput();
+ input.state = CheckState.SUCCESSFUL;
+
+ CheckInfo info = checksApiFactory.revision(patchSetId).id(checkKey.checkerUuid()).update(input);
+ assertThat(info.state).isEqualTo(CheckState.SUCCESSFUL);
+ }
+
+ @Test
public void cannotUpdateCheckWithoutAdministrateCheckers() throws Exception {
requestScopeOperations.setApiUser(user.getId());