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

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

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

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