package org.junit.internal;

import java.util.ArrayList;
import java.util.List;

import org.junit.Assert;

Thrown when two array elements differ
See Also:
  • assertArrayEquals.assertArrayEquals(String, Object[], Object[])
/** * 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<Integer> fIndices = new ArrayList<Integer>(); 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
Params:
  • cause – the exception that caused the array's content to fail the assertion test
  • index – the array position of the objects that are not equal.
See Also:
/** * 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; 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}
/** * {@inheritDoc} */
@Override public String toString() { return getMessage(); } }