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 unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.runners.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.junit.internal.Throwables;
/**
* 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 errors;
public MultipleFailureException(List errors) {
this.errors = new ArrayList(errors);
}
public List getFailures() {
return Collections.unmodifiableList(errors);
}
@Override
public String getMessage() {
StringBuilder sb = new StringBuilder(
String.format("There were %d errors:", errors.size()));
for (Throwable e : errors) {
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 Exception or Error if the list is not empty
*/
@SuppressWarnings("deprecation")
public static void assertEmpty(List errors) throws Exception {
if (errors.isEmpty()) {
return;
}
if (errors.size() == 1) {
throw Throwables.rethrowAsException(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);
}
}