tree 1da9a4b2600839b097f71aba87f4dcb799e8fd70
parent 20e61d9a98736e0ada5d75598028f5ca69ba6de8
author Mykola Nikishov <mn@mn.com.ua> 1485549506 +0200
committer Stefan Xenos <sxenos@gmail.com> 1486584565 -0400

Assert that two object arrays are equal with JUnit's assertArrayEquals(Object[], Object[])

This provides a more clear error message for both cases when array
lengths are different or they contain different elements:

    java.lang.AssertionError: array lengths differed, expected.length=0 actual.length=1
	    at org.junit.Assert.fail(Assert.java:88)
	    at org.junit.internal.ComparisonCriteria.assertArraysAreSameLength(ComparisonCriteria.java:76)
	    at org.junit.internal.ComparisonCriteria.arrayEquals(ComparisonCriteria.java:37)
	    at org.junit.Assert.internalArrayEquals(Assert.java:532)
	    at org.junit.Assert.assertArrayEquals(Assert.java:283)
	    at org.junit.Assert.assertArrayEquals(Assert.java:298)

    arrays first differed at element [1]; expected:<[1]> but was:<[2]>
	    at org.junit.internal.ComparisonCriteria.arrayEquals(ComparisonCriteria.java:55)
	    at org.junit.Assert.internalArrayEquals(Assert.java:532)
	    at org.junit.Assert.assertArrayEquals(Assert.java:283)
	    at org.junit.Assert.assertArrayEquals(Assert.java:298)

Change-Id: I468b376d696445c1aaae920b9b2b71c0813b09ca
Signed-off-by: Mykola Nikishov <mn@mn.com.ua>
