public void verifyMessageBodiesForCombinedCheckStateUpdatedEmailWithChecksOfDifferentStates()

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);
  }