Skip to content

Commit

Permalink
Merge pull request #3136 from zAlbee/array-assert-equals-message
Browse files Browse the repository at this point in the history
Fix array assertEquals failure message when an element is null or non-null
  • Loading branch information
juherr committed Jun 14, 2024
2 parents b7d35d6 + 6bdf496 commit e0a7d5f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Current (7.11.0)
Fixed: GITHUB-3028: Execution stalls when using "use-global-thread-pool" (Krishnan Mahadevan)
Fixed: GITHUB-3122: Update JCommander to 1.83 (Antoine Dessaigne)
Fixed: GITHUB-3135: assertEquals on arrays - Failure message is missing information about the array index when an array element is unexpectedly null or non-null (Albert Choi)

7.10.2
Fixed: GITHUB-3117: ListenerComparator doesn't work (Krishnan Mahadevan)
Expand Down
2 changes: 1 addition & 1 deletion testng-asserts/src/main/java/org/testng/Assert.java
Original file line number Diff line number Diff line change
Expand Up @@ -1780,7 +1780,7 @@ public static void assertEquals(Object[] actual, Object[] expected, String messa
continue;
}
if ((a == null && e != null) || (a != null && e == null)) {
failNotEquals(a, e, message);
failNotEquals(a, e, errorMessage);
}
// Compare by value for multi-dimensional array.
if (e.getClass().isArray()) {
Expand Down
27 changes: 27 additions & 0 deletions testng-asserts/src/test/java/org/testng/AssertTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,33 @@ public void testInequalityMessage() {
Assert.assertEquals("x", "y");
}

@Test(
description = "GITHUB-3135",
expectedExceptions = AssertionError.class,
expectedExceptionsMessageRegExp =
"Arrays differ at element \\[2\\]: 3 != 5 expected \\[3\\] but found \\[5\\]")
public void testAssertEqualsArrayElementDiffers() {
Assert.assertEquals(new Integer[] {1, 2, 5}, new Integer[] {1, 2, 3});
}

@Test(
description = "GITHUB-3135",
expectedExceptions = AssertionError.class,
expectedExceptionsMessageRegExp =
"Arrays differ at element \\[2\\]: 3 != null expected \\[3\\] but found \\[null\\]")
public void testAssertEqualsArrayElementIsNull() {
Assert.assertEquals(new Integer[] {1, 2, null}, new Integer[] {1, 2, 3});
}

@Test(
description = "GITHUB-3135",
expectedExceptions = AssertionError.class,
expectedExceptionsMessageRegExp =
"Arrays differ at element \\[2\\]: null != 5 expected \\[null\\] but found \\[5\\]")
public void testAssertEqualsArrayElementIsNotNull() {
Assert.assertEquals(new Integer[] {1, 2, 5}, new Integer[] {1, 2, null});
}

@Test
public void testAssertEqualsNoOrder() {
String[] actual = {"a", "b"};
Expand Down

0 comments on commit e0a7d5f

Please sign in to comment.