TestExecutionResult getStoredResultOrSuccessful(TestDescriptor testDescriptor) { List<TestExecutionResult> testExecutionResults = executionResults.get(testDescriptor); if (testExecutionResults == null) { return successful(); } if (testExecutionResults.size() == 1) { return testExecutionResults.get(0); } // @formatter:off List<Throwable> failures = testExecutionResults .stream() .map(TestExecutionResult::getThrowable) .map(Optional::get) .collect(toList()); // @formatter:on return failed(new MultipleFailuresError("", failures)); } }
static void assertAll(String heading, Stream<Executable> executables) { Preconditions.notNull(executables, "executables stream must not be null"); List<Throwable> failures = executables // .peek(executable -> Preconditions.notNull(executable, "individual executables must not be null"))// .map(executable -> { try { executable.execute(); return null; } catch (Throwable t) { BlacklistedExceptions.rethrowIfBlacklisted(t); return t; } }) // .filter(Objects::nonNull) // .collect(Collectors.toList()); if (!failures.isEmpty()) { MultipleFailuresError multipleFailuresError = new MultipleFailuresError(heading, failures); failures.forEach(multipleFailuresError::addSuppressed); throw multipleFailuresError; } }
@Override public void validate(String query) { validations--; List<Throwable> tryFailures = new ArrayList<>(); boolean failed = true; for (int i = 0; i < statements.size(); i++) { try { statements.get(i).validate(query); statements.remove(i); failed = false; break; } catch (Throwable t) { tryFailures.add(t); } } if (failed) { failures.addAll(tryFailures); } if (validations == 0 && !failures.isEmpty()) { throw new MultipleFailuresError("Multiple query validations failed", failures); } }
@Override public void validate(String query) { validations--; List<Throwable> tryFailures = new ArrayList<>(); boolean failed = true; for (int i = 0; i < statements.size(); i++) { try { statements.get(i).validate(query); statements.remove(i); failed = false; break; } catch (Throwable t) { tryFailures.add(t); } } if (failed) { failures.addAll(tryFailures); } if (validations == 0 && !failures.isEmpty()) { throw new MultipleFailuresError("Multiple query validations failed", failures); } }
throw new MultipleFailuresError("Multiple query validations failed", failures);
throw new MultipleFailuresError("Multiple query validations failed", failures);
/** * Asserts that <em>all</em> assertions contained in {@code asserts} do not fail. * Report a failure of at least one in a {@link MultipleFailuresError}. * * <p>Include {@code heading} in the exception's message string.</p> */ @API(Experimental) public static void assertAll(String heading, Executable... asserts) throws MultipleFailuresError { MultipleFailuresError multipleFailuresError = new MultipleFailuresError(heading); for (Executable executable : asserts) { try { executable.execute(); } catch (AssertionError assertionError) { multipleFailuresError.addFailure(assertionError); } catch (Throwable t) { throw ExceptionUtils.throwAsUncheckedException(t); } } if (multipleFailuresError.hasFailures()) { throw multipleFailuresError; } }