in javatests/com/google/gerrit/plugins/checks/acceptance/api/ChecksEmailIT.java [1004:1072]
public void verifyMessageBodiesForCombinedCheckStateUpdatedEmailWithMultipleChecksOfSameState()
throws Exception {
String checkerNameRunningFoo = "Foo Checker";
CheckerUuid checkerUuidRunningFoo =
checkerOperations.newChecker().name(checkerNameRunningFoo).repository(project).create();
String checkUrlFoo = "http://foo-checker/12345";
postCheck(checkerUuidRunningFoo, CheckState.RUNNING, null, checkUrlFoo);
String checkerNameRunningBar = "Bar Checker";
CheckerUuid checkerUuidRunningBar =
checkerOperations.newChecker().name(checkerNameRunningBar).repository(project).create();
String checkUrlBar = "http://bar-checker/67890";
postCheck(checkerUuidRunningBar, CheckState.RUNNING, null, checkUrlBar);
String checkerNameRunningBaz = "Baz Checker";
CheckerUuid checkerUuidRunningBaz =
checkerOperations.newChecker().name(checkerNameRunningBaz).repository(project).create();
// This check doesn't have an URL, so that we test a mix of checks with and without URL.
postCheck(checkerUuidRunningBaz, CheckState.RUNNING);
String checkerNameFailed = "My Failed Checker";
CheckerUuid checkerUuidFailed =
checkerOperations
.newChecker()
.name(checkerNameFailed)
.repository(project)
.required()
.create();
sender.clear();
postCheck(checkerUuidFailed, CheckState.FAILED);
assertThat(getCombinedCheckState()).isEqualTo(CombinedCheckState.FAILED);
List<Message> messages = sender.getMessages();
assertThat(messages).hasSize(1);
Map<CheckState, List<String>> expectedCheckersByState = new HashMap<>();
expectedCheckersByState.put(
CheckState.RUNNING,
ImmutableList.of(checkerNameRunningBar, checkerNameRunningBaz, checkerNameRunningFoo));
expectedCheckersByState.put(CheckState.FAILED, ImmutableList.of(checkerNameFailed));
Message message = messages.get(0);
assertThat(message.body())
.contains(
combinedCheckStateUpdatedText(CombinedCheckState.FAILED)
+ "\n"
+ "Checker "
+ checkerNameFailed
+ " updated the check state to "
+ CheckState.FAILED
+ ".\n"
+ allChecksOverviewText(expectedCheckersByState));
assertThat(message.body()).contains(GERRIT_MESSAGE_TYPE_COMBINED_CHECK_STATE_UPDATE);
assertThat(message.htmlBody())
.contains(
combinedCheckStateUpdatedHtml(CombinedCheckState.FAILED)
+ "<p>Checker <strong>"
+ checkerNameFailed
+ "</strong> updated the check state to "
+ CheckState.FAILED
+ ".</p>"
+ allChecksOverviewHtml(
expectedCheckersByState,
ImmutableMap.of(
checkerNameRunningFoo, checkUrlFoo, checkerNameRunningBar, checkUrlBar)));
assertThat(message.htmlBody()).contains(GERRIT_MESSAGE_TYPE_COMBINED_CHECK_STATE_UPDATE);
}