ReportableEvidenceItemFactory { @VisibleForTesting static boolean hasReportableEvidenceLevel(@NotNull EvidenceItem evidence) { return evidence.level().includeInReport(); } private  ReportableEvidenceItemFactory(); @NotNull static List<EvidenceItem> filterBlacklistedEvidence(@NotNull List<EvidenceItem> allEvidenceItems); @NotNull static List<EvidenceItem> extractNonTrials(@NotNull List<EvidenceItem> evidenceItems); @NotNull static List<EvidenceItem> toReportableFlatList(@NotNull Map<?, List<EvidenceItem>> evidenceItemMap);  }
@Test public void canFilterCorrectlyOnEvidenceLevel() { EvidenceItem item1 = createTestEvidenceBuilder().level(EvidenceLevel.LEVEL_A).build(); EvidenceItem item2 = createTestEvidenceBuilder().level(EvidenceLevel.LEVEL_B).build(); EvidenceItem item3 = createTestEvidenceBuilder().level(EvidenceLevel.LEVEL_C).build(); EvidenceItem item4 = createTestEvidenceBuilder().level(EvidenceLevel.LEVEL_D).build(); EvidenceItem item5 = createTestEvidenceBuilder().level(EvidenceLevel.LEVEL_E).build(); assertTrue(ReportableEvidenceItemFactory.hasReportableEvidenceLevel(item1)); assertTrue(ReportableEvidenceItemFactory.hasReportableEvidenceLevel(item2)); assertFalse(ReportableEvidenceItemFactory.hasReportableEvidenceLevel(item3)); assertFalse(ReportableEvidenceItemFactory.hasReportableEvidenceLevel(item4)); assertFalse(ReportableEvidenceItemFactory.hasReportableEvidenceLevel(item5)); }