in javatests/com/google/gerrit/plugins/checks/acceptance/api/ChecksEmailIT.java [431:478]
private void testNotifySettingsForPostCheck(
CheckerUuid checkerUuid,
Set<TestAccount> accountsToNotify,
NotifyHandling notify,
TestAccount... expectedRecipients)
throws RestApiException {
assertThat(getCombinedCheckState()).isEqualTo(CombinedCheckState.IN_PROGRESS);
sender.clear();
// Post a new check that changes the combined check state to FAILED.
requestScopeOperations.setApiUser(bot.id());
CheckInput input = new CheckInput();
if (!accountsToNotify.isEmpty()) {
input.notifyDetails =
ImmutableMap.of(
RecipientType.TO,
new NotifyInfo(
accountsToNotify.stream().map(TestAccount::username).collect(toImmutableList())));
}
input.notify = notify;
input.checkerUuid = checkerUuid.get();
input.state = CheckState.FAILED;
checksApiFactory.revision(patchSetId).create(input).get();
assertThat(getCombinedCheckState()).isEqualTo(CombinedCheckState.FAILED);
List<Message> messages = sender.getMessages();
if (expectedRecipients.length == 0) {
assertThat(messages).isEmpty();
} else {
assertThat(messages).hasSize(1);
Message message = messages.get(0);
assertThat(message.from().name()).isEqualTo(bot.fullName() + " (Code Review)");
assertThat(message.body())
.contains("The combined check state has been updated to " + CombinedCheckState.FAILED);
assertThat(message.rcpt())
.containsExactlyElementsIn(
Arrays.stream(expectedRecipients)
.map(TestAccount::getNameEmail)
.collect(toImmutableList()));
}
// reset combined check state
input.state = CheckState.SCHEDULED;
checksApiFactory.revision(patchSetId).create(input).get();
assertThat(getCombinedCheckState()).isEqualTo(CombinedCheckState.IN_PROGRESS);
}