class AssertAll { private AssertAll() { /* no-op */ } static void assertAll(Executable... executables) { assertAll(null, executables); } static void assertAll(String heading, Executable... executables) { Preconditions.notEmpty(executables, "executables array must not be null or empty"); Preconditions.containsNoNullElements(executables, "individual executables must not be null"); assertAll(heading, Arrays.stream(executables)); } static void assertAll(Collection<Executable> executables) { assertAll(null, executables); } static void assertAll(String heading, Collection<Executable> executables) { Preconditions.notNull(executables, "executables collection must not be null"); Preconditions.containsNoNullElements(executables, "individual executables must not be null"); assertAll(heading, executables.stream()); } static void assertAll(Stream<Executable> executables) { assertAll(null, executables); } static void assertAll(String heading, Stream<Executable> executables) { Preconditions.notNull(executables, "executables stream must not be null"); List<Throwable> failures = executables // .map(executable -> { Preconditions.notNull(executable, "individual executables must not be null"); try { executable.execute(); return null; } catch (Throwable t) { UnrecoverableExceptions.rethrowIfUnrecoverable(t); return t; } }) // .filter(Objects::nonNull) // .collect(Collectors.toList()); if (!failures.isEmpty()) { MultipleFailuresError multipleFailuresError = new MultipleFailuresError(heading, failures); failures.forEach(multipleFailuresError::addSuppressed); throw multipleFailuresError; } } }
Discover more from Coursity
Subscribe to get the latest posts sent to your email.