org.junit.runners.model.MultipleFailureException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a regression testing framework written by Erich Gamma and Kent Beck.
It is used by the developer who implements unit tests in Java.
// Copyright 2010 Google Inc. All Rights Reserved.
package org.junit.runners.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Collects multiple {@code Throwable}s into one exception.
*
* @since 4.9
*/
public class MultipleFailureException extends Exception {
private static final long serialVersionUID = 1L;
private final List fErrors;
public MultipleFailureException(List errors) {
fErrors = new ArrayList(errors);
}
public List getFailures() {
return Collections.unmodifiableList(fErrors);
}
@Override
public String getMessage() {
StringBuilder sb = new StringBuilder(
String.format("There were %d errors:", fErrors.size()));
for (Throwable e : fErrors) {
sb.append(String.format("\n %s(%s)", e.getClass().getName(), e.getMessage()));
}
return sb.toString();
}
/**
* Asserts that a list of throwables is empty. If it isn't empty,
* will throw {@link MultipleFailureException} (if there are
* multiple throwables in the list) or the first element in the list
* (if there is only one element).
*
* @param errors list to check
* @throws Throwable if the list is not empty
*/
@SuppressWarnings("deprecation")
public static void assertEmpty(List errors) throws Throwable {
if (errors.isEmpty()) {
return;
}
if (errors.size() == 1) {
throw errors.get(0);
}
/*
* Many places in the code are documented to throw
* org.junit.internal.runners.model.MultipleFailureException.
* That class now extends this one, so we throw the internal
* exception in case developers have tests that catch
* MultipleFailureException.
*/
throw new org.junit.internal.runners.model.MultipleFailureException(errors);
}
}