diff --git a/CHANGES.txt b/CHANGES.txt index 4c4cbcff96..993e6cb649 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ Current +Fixed: GITHUB-2643: assertEquals(Set,Set) now ignores ordering as it did before. (Elis Edlund) Fixed: GITHUB-2653: Assert methods requires casting since TestNg 7.0 for mixed boxed and unboxed primitives in assertEquals. Fixed: GITHUB-2229: Restore @BeforeGroups and @AfterGroups Annotations functionality (Krishnan Mahadevan) Fixed: GITHUB-2563: Skip test if its data provider provides no data (Krishnan Mahadevan) diff --git a/testng-asserts/src/main/java/org/testng/Assert.java b/testng-asserts/src/main/java/org/testng/Assert.java index 7d64e245a5..315e5b7a42 100644 --- a/testng-asserts/src/main/java/org/testng/Assert.java +++ b/testng-asserts/src/main/java/org/testng/Assert.java @@ -1795,7 +1795,7 @@ private static String getNotEqualReason(Iterator actual, Iterator expected } private static String getNotEqualReason(Set actual, Set expected) { - if (actual == expected) { // We don't use Arrays.equals here because order is checked + if (actual == expected) { return null; } @@ -1807,7 +1807,7 @@ private static String getNotEqualReason(Set actual, Set expected) { if (!Objects.equals(actual, expected)) { return "Sets differ: expected " + expected + " but got " + actual; } - return getNotEqualReason(actual.iterator(), expected.iterator()); + return null; } /** diff --git a/testng-asserts/src/test/java/test/asserttests/AssertTest.java b/testng-asserts/src/test/java/test/asserttests/AssertTest.java index c086717b1b..bc4fc3aaff 100644 --- a/testng-asserts/src/test/java/test/asserttests/AssertTest.java +++ b/testng-asserts/src/test/java/test/asserttests/AssertTest.java @@ -373,8 +373,8 @@ public void checkIteratorNotEqualsFailsWhenDifferentOrder() { assertNotEquals(iterator1, iterator2); } - @Test(description = "GITHUB-2540", expectedExceptions = AssertionError.class) - public void checkSetEqualsFailsWhenDifferentOrder() { + @Test(description = "GITHUB-2643") + public void checkSetEqualsWhenDifferentOrder() { Set set1 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); Set set2 = new LinkedHashSet<>(Arrays.asList("a", "c", "b")); @@ -400,8 +400,8 @@ public void checkSetEquals() { assertEquals(set1, set2); } - @Test(description = "GITHUB-2540") - public void checkSetNotEquals() { + @Test(description = "GITHUB-2643", expectedExceptions = AssertionError.class) + public void checkSetNotEqualsFailsWhenDifferentOrder() { Set set1 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); Set set2 = new LinkedHashSet<>(Arrays.asList("a", "c", "b")); @@ -409,8 +409,8 @@ public void checkSetNotEquals() { assertNotEquals(set1, set2); } - @Test(description = "GITHUB-2540", expectedExceptions = AssertionError.class) - public void checkSetNotEqualsFailsWhenDifferentOrder() { + @Test(description = "GITHUB-2643", expectedExceptions = AssertionError.class) + public void checkSetNotEqualsFailsWhenSameOrder() { Set set1 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); Set set2 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); @@ -418,6 +418,24 @@ public void checkSetNotEqualsFailsWhenDifferentOrder() { assertNotEquals(set1, set2); } + @Test(description = "GITHUB-2643") + public void checkSetNotEqualsWhenNotSameSets() { + + Set set1 = new LinkedHashSet<>(Arrays.asList("a", "b")); + Set set2 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); + + assertNotEquals(set1, set2); + } + + @Test(description = "GITHUB-2643", expectedExceptions = AssertionError.class) + public void checkSetEqualsFailsWhenNotSameSets() { + + Set set1 = new LinkedHashSet<>(Arrays.asList("a", "b", "c")); + Set set2 = new LinkedHashSet<>(Arrays.asList("a", "b")); + + assertEquals(set1, set2); + } + @Test(description = "GITHUB-2540", expectedExceptions = AssertionError.class) public void checkArrayEqualsFailsWhenDifferentOrder() {