diff options
Diffstat (limited to 'src/main/java/org/junit/internal/ArrayComparisonFailure.java')
-rw-r--r-- | src/main/java/org/junit/internal/ArrayComparisonFailure.java | 98 |
1 files changed, 53 insertions, 45 deletions
diff --git a/src/main/java/org/junit/internal/ArrayComparisonFailure.java b/src/main/java/org/junit/internal/ArrayComparisonFailure.java index 08851de..8627d6e 100644 --- a/src/main/java/org/junit/internal/ArrayComparisonFailure.java +++ b/src/main/java/org/junit/internal/ArrayComparisonFailure.java @@ -7,53 +7,61 @@ 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; - - private List<Integer> fIndices= new ArrayList<Integer>(); - private final String fMessage; - private final AssertionError fCause; - - /** - * Construct a new <code>ArrayComparisonFailure</code> 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) { - fMessage= message; - fCause= cause; - addDimension(index); - } - - public void addDimension(int index) { - fIndices.add(0, index); - } - - @Override - public String getMessage() { - StringBuilder builder= new StringBuilder(); - if (fMessage != null) - builder.append(fMessage); - builder.append("arrays first differed at element "); - for (int each : fIndices) { - builder.append("["); - builder.append(each); - builder.append("]"); - } - builder.append("; "); - builder.append(fCause.getMessage()); - return builder.toString(); - } - - /** - * {@inheritDoc} - */ - @Override public String toString() { - return getMessage(); - } + 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/junit/issues/976 + */ + private final List<Integer> fIndices = new ArrayList<Integer>(); + private final String fMessage; + + /** + * Construct a new <code>ArrayComparisonFailure</code> 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; + initCause(cause); + addDimension(index); + } + + public void addDimension(int index) { + fIndices.add(0, index); + } + + @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(); + } } |