This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag OpenBSD in repository testng.
commit 18788dcf8b825f4e62e3a25bd9530786172a16ec Author: Dennis Byrne <[email protected]> Date: Fri Feb 21 09:52:00 2014 -0800 symmetric equals assertion --- src/main/java/org/testng/Assert.java | 16 ++++---- src/test/java/org/testng/AssertTest.java | 68 ++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/testng/Assert.java b/src/main/java/org/testng/Assert.java index c945696..d57dceb 100644 --- a/src/main/java/org/testng/Assert.java +++ b/src/main/java/org/testng/Assert.java @@ -112,13 +112,15 @@ public class Assert { if((expected == null) && (actual == null)) { return; } - if(expected != null) { - if (expected.getClass().isArray()) { - assertArrayEquals(actual, expected, message); - return; - } else if (expected.equals(actual)) { - return; - } + if(expected == null ^ actual == null) { + failNotEquals(actual, expected, message); + } + if (expected.getClass().isArray()) { + assertArrayEquals(actual, expected, message); + return; + } + if (expected.equals(actual) && actual.equals(expected)) { + return; } failNotEquals(actual, expected, message); } diff --git a/src/test/java/org/testng/AssertTest.java b/src/test/java/org/testng/AssertTest.java index 10e3af8..d8b839b 100644 --- a/src/test/java/org/testng/AssertTest.java +++ b/src/test/java/org/testng/AssertTest.java @@ -115,4 +115,72 @@ public class AssertTest { Assert.assertEquals(mapActual, mapExpected); } + + @Test(expectedExceptions = AssertionError.class) + public void assertEqualsSymmetricScalar() { + Assert.assertEquals(new Asymmetric(42, 'd'), new Contrived(42)); + } + + @Test(expectedExceptions = AssertionError.class) + public void assertEqualsSymmetricArrays() { + Object[] actual = {new Integer(1), new Asymmetric(42, 'd'), "inDay"}; + Object[] expected = {new Integer(1), new Contrived(42), "inDay"}; + Assert.assertEquals(actual, expected); + } + + class Contrived { + + int integer; + + Contrived(int integer){ + this.integer = integer; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Contrived)) return false; + + Contrived contrived = (Contrived) o; + + if (integer != contrived.integer) return false; + + return true; + } + + @Override + public int hashCode() { + return integer; + } + } + + class Asymmetric extends Contrived { + + char character; + + Asymmetric(int integer, char character) { + super(integer); + this.character = character; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Asymmetric)) return false; + if (!super.equals(o)) return false; + + Asymmetric that = (Asymmetric) o; + + if (character != that.character) return false; + + return true; + } + + @Override + public int hashCode() { + int result = super.hashCode(); + result = 31 * result + (int) character; + return result; + } + } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

