@Test(groups = {"regressiontest"})
  public void missingChecksumTest() throws Exception {
    addDescription("Verifies that missing checksums are reported correctly");

    addStep(
        "Report a missing checksum",
        "hasIntegrityIssues() should return true and the summary report should "
            + "correctly inform of the missing checksum.");
    BasicIntegrityReporter reporter =
        new BasicIntegrityReporter("CollectionWithIssues", "test", new File("target/"));
    reporter.reportMissingChecksum("TestChecksum", "Pillar1");
    assertTrue(
        "Reporter didn't interpreted missing checksum as a integrity issue",
        reporter.hasIntegrityIssues());
    String expectedReport = REPORT_SUMMARY_START + "Pillar1 is missing 1 checksum.";
    assertEquals(
        "Wrong report returned on missing checksum",
        expectedReport,
        reporter.generateSummaryOfReport());

    addStep(
        "Report another missing checksum on the same pillar",
        "The summary report should be update with the " + "additional missing checksum.");
    reporter.reportMissingChecksum("TestChecksum2", "Pillar1");
    expectedReport = REPORT_SUMMARY_START + "Pillar1 is missing 2 checksums.";
    assertEquals(
        "Wrong report returned on missing checksum",
        expectedReport,
        reporter.generateSummaryOfReport());

    addStep(
        "Report a missing checksum on another pillar",
        "The summary report should be update with the new pillar problem.");
    reporter.reportMissingChecksum("TestChecksum3", "Pillar2");
    expectedReport =
        REPORT_SUMMARY_START
            + "Pillar1 is missing 2 checksums."
            + "\nPillar2 is missing 1 checksum.";
    assertEquals(
        "Wrong report returned on missing checksum",
        expectedReport,
        reporter.generateSummaryOfReport());
  }