fixed NPEs in Assert
diff --git a/src/main/org/testng/Assert.java b/src/main/org/testng/Assert.java
index a451a69..e35661d 100644
--- a/src/main/org/testng/Assert.java
+++ b/src/main/org/testng/Assert.java
@@ -466,7 +466,13 @@
* @param message the assertion error message
*/
static public void assertEquals(Collection actual, Collection expected, String message) {
- if (null == message) message = "";
+ if(actual == expected) return;
+
+ if ((actual == null && expected != null) || (actual != null && expected == null)) {
+ if (message != null) fail(message);
+ else fail("Arrays not equal: " + expected + " and " + actual);
+ }
+
assertEquals(actual.size(), expected.size(), message + ": lists don't have the same size");
Iterator actIt = actual.iterator();
@@ -477,7 +483,7 @@
Object e = expIt.next();
Object a = actIt.next();
String errorMessage = message == null
- ? "Lists differ at element [" + i + "]: " + e + " != " + a
+ ? "Lists differ at element [" + i + "]: " + e + " != " + a
: message + ": Lists differ at element [" + i + "]: " + e + " != " + a;
assertEquals(a, e, errorMessage);
@@ -492,6 +498,8 @@
* @param message the assertion error message
*/
static public void assertEquals(Object[] actual, Object[] expected, String message) {
+ if(actual == expected) return;
+
if ((actual == null && expected != null) || (actual != null && expected == null)) {
if (message != null) fail(message);
else fail("Arrays not equal: " + expected + " and " + actual);
@@ -507,6 +515,8 @@
* @param message the assertion error message
*/
static public void assertEqualsNoOrder(Object[] actual, Object[] expected, String message) {
+ if(actual == expected) return;
+
if ((actual == null && expected != null) || (actual != null && expected == null)) {
if (message != null) fail(message);
else fail("Arrays not equal: " + expected + " and " + actual);
diff --git a/test/src/org/testng/AssertTest.java b/test/src/org/testng/AssertTest.java
new file mode 100644
index 0000000..d637aac
--- /dev/null
+++ b/test/src/org/testng/AssertTest.java
@@ -0,0 +1,32 @@
+package org.testng;
+
+import java.util.Collection;
+
+import org.testng.annotations.Test;
+
+
+/**
+ * This class/interface
+ */
+public class AssertTest {
+ @Test
+ public void nullObjectArrayAssertEquals() {
+ Object[] expected= null;
+ Object[] actual= null;
+ Assert.assertEquals(actual, expected);
+ }
+
+ @Test
+ public void nullObjectArrayAssertNoOrder() {
+ Object[] expected= null;
+ Object[] actual= null;
+ Assert.assertEqualsNoOrder(actual, expected);
+ }
+
+ @Test
+ public void nullCollectionAssertEquals() {
+ Collection expected = null;
+ Collection actual = null;
+ Assert.assertEquals(actual, expected);
+ }
+}