Test that getting a check with options works if checker is invalid
When the ListChecksOption.CHECKER option is used for getting a check
additional fields in CheckInfo are populated ('checkerName', 'blocking'
and 'checkerStatus'). Populating these fields is only possible when the
checker has a valid configuration. If the checker configuration is
invalid we expect that getting the check still works and that the
additional fields are not populated.
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: Ib9fafbb105361377eecbd6889deac8eaa94e393a
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
index e795cdd..072691c 100644
--- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
+++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/GetCheckIT.java
@@ -216,6 +216,33 @@
}
@Test
+ public void getCheckWithCheckerOptionReturnsCheckEvenIfCheckerIsInvalid() throws Exception {
+ CheckerUuid checkerUuid =
+ checkerOperations.newChecker().repository(project).name("My Checker").create();
+
+ CheckKey checkKey = CheckKey.create(project, patchSetId, checkerUuid);
+ checkOperations.newCheck(checkKey).setState(CheckState.RUNNING).upsert();
+
+ checkerOperations.checker(checkerUuid).forUpdate().forceInvalidConfig().update();
+
+ CheckInfo check = getCheckInfo(patchSetId, checkerUuid, ListChecksOption.CHECKER);
+ assertThat(check).isNotNull();
+
+ // Checker fields are not set.
+ assertThat(check.checkerName).isNull();
+ assertThat(check.blocking).isNull();
+ assertThat(check.checkerStatus).isNull();
+
+ // Check that at least some non-checker fields are set to ensure that we didn't get a completely
+ // empty CheckInfo.
+ assertThat(check.repository).isEqualTo(project.get());
+ assertThat(check.checkerUuid).isEqualTo(checkerUuid.get());
+ assertThat(check.changeNumber).isEqualTo(patchSetId.getParentKey().get());
+ assertThat(check.patchSetId).isEqualTo(patchSetId.get());
+ assertThat(check.state).isEqualTo(CheckState.RUNNING);
+ }
+
+ @Test
public void getCheckForCheckerThatDoesNotApplyToTheProject() throws Exception {
Project.NameKey otherProject = createProjectOverAPI("other", null, true, null);
CheckerUuid checkerUuid = checkerOperations.newChecker().repository(otherProject).create();