### Question:
IntegrityReport extends Report { public final void removeReport(final Report report) { if (report == null) { LOGGER.error("report cannot be null"); throw new NullPointerException("report"); } if (reports.contains(report)) { if (reports.remove(report)) { LOGGER.info("report {} successfully removed", report); } else { LOGGER.info("unable to remove report {} from IntegrityReport", report); } } else { LOGGER.info("report {} not found in IntegrityReport", report); } } IntegrityReport(); final void addReport(final Report report); final boolean contains(Class<? extends Report> reportType); final Set<Report> getReports(); final void removeReport(final Report report); final T extractReport(final Class<T> reportType); String getDeviceName(); @Override final String getReportType();  }### Answer:
@Test public final void removeReport() { TestReport report = new TestReport(); TestReport report2 = new TestReport(); IntegrityReport integrityReport = new IntegrityReport(); integrityReport.addReport(report); integrityReport.addReport(report2); Set<Report> reports = integrityReport.getReports(); Assert.assertTrue(reports.contains(report)); Assert.assertTrue(reports.contains(report2)); Assert.assertEquals(reports.size(), 2); integrityReport.removeReport(report); Assert.assertFalse(reports.contains(report)); Assert.assertTrue(reports.contains(report2)); Assert.assertEquals(reports.size(), 1); }