org.junit.internal.ArrayComparisonFailure 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.internal;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
/**
* Thrown when two array elements differ
*
* @see Assert#assertArrayEquals(String, Object[], Object[])
*/
public class ArrayComparisonFailure extends AssertionError {
private static final long serialVersionUID = 1L;
/*
* We have to use the f prefix until the next major release to ensure
* serialization compatibility.
* See https://github.com/junit-team/junit4/issues/976
*/
private final List fIndices = new ArrayList();
private final String fMessage;
private final AssertionError fCause;
/**
* Construct a new ArrayComparisonFailure
with an error text and the array's
* dimension that was not equal
*
* @param cause the exception that caused the array's content to fail the assertion test
* @param index the array position of the objects that are not equal.
* @see Assert#assertArrayEquals(String, Object[], Object[])
*/
public ArrayComparisonFailure(String message, AssertionError cause, int index) {
this.fMessage = message;
this.fCause = cause;
initCause(fCause);
addDimension(index);
}
public void addDimension(int index) {
fIndices.add(0, index);
}
@Override
public synchronized Throwable getCause() {
return super.getCause() == null ? fCause : super.getCause();
}
@Override
public String getMessage() {
StringBuilder sb = new StringBuilder();
if (fMessage != null) {
sb.append(fMessage);
}
sb.append("arrays first differed at element ");
for (int each : fIndices) {
sb.append("[");
sb.append(each);
sb.append("]");
}
sb.append("; ");
sb.append(getCause().getMessage());
return sb.toString();
}
/**
* {@inheritDoc}
*/
@Override
public String toString() {
return getMessage();
}
}