in javatests/com/google/gerrit/plugins/checks/acceptance/api/ChecksEmailIT.java [927:1001]
public void verifyMessageBodiesForCombinedCheckStateUpdatedEmailWithChecksOfDifferentStates()
throws Exception {
String checkerNameNotStarted = "My Not Started Checker";
CheckerUuid checkerUuidNotStarted =
checkerOperations.newChecker().name(checkerNameNotStarted).repository(project).create();
postCheck(checkerUuidNotStarted, CheckState.NOT_STARTED);
String checkerNameScheduled = "My Scheduled Checker";
CheckerUuid checkerUuidScheduled =
checkerOperations.newChecker().name(checkerNameScheduled).repository(project).create();
postCheck(checkerUuidScheduled, CheckState.SCHEDULED);
String checkerNameRunning = "My Running Checker";
CheckerUuid checkerUuidRunning =
checkerOperations.newChecker().name(checkerNameRunning).repository(project).create();
postCheck(checkerUuidRunning, CheckState.RUNNING);
String checkerNameNotRelevant = "My Not Relevant Checker";
CheckerUuid checkerUuidNotRelevant =
checkerOperations.newChecker().name(checkerNameNotRelevant).repository(project).create();
postCheck(checkerUuidNotRelevant, CheckState.NOT_RELEVANT);
String checkerNameSuccesful = "My Successful Checker";
CheckerUuid checkerUuidSuccessful =
checkerOperations.newChecker().name(checkerNameSuccesful).repository(project).create();
postCheck(checkerUuidSuccessful, CheckState.SUCCESSFUL);
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.NOT_STARTED, ImmutableList.of(checkerNameNotStarted));
expectedCheckersByState.put(CheckState.SCHEDULED, ImmutableList.of(checkerNameScheduled));
expectedCheckersByState.put(CheckState.RUNNING, ImmutableList.of(checkerNameRunning));
expectedCheckersByState.put(CheckState.NOT_RELEVANT, ImmutableList.of(checkerNameNotRelevant));
expectedCheckersByState.put(CheckState.SUCCESSFUL, ImmutableList.of(checkerNameSuccesful));
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));
assertThat(message.htmlBody()).contains(GERRIT_MESSAGE_TYPE_COMBINED_CHECK_STATE_UPDATE);
}