private void verifyHeaders(ProjectWorkspace projectWorkspace, Path path, String... headers) throws IOException { Path resolvedPath = headerSymlinkTreePath(path); if (PREPROCESSOR_SUPPORTS_HEADER_MAPS) { final List<String> presentHeaders = new ArrayList<>(); HeaderMap headerMap = HeaderMap.loadFromFile(projectWorkspace.getPath(resolvedPath).toFile()); headerMap.visit( new HeaderMap.HeaderMapVisitor() { @Override public void apply(String str, String prefix, String suffix) { presentHeaders.add(str); } }); assertThat(presentHeaders, containsInAnyOrder(headers)); } else { for (String header : headers) { assertThat(Files.exists(projectWorkspace.getPath(resolvedPath.resolve(header))), is(true)); } } }