Fixed: TESTNG-471: assertEquals(Map, Map) fails if a map is a subset of the other
diff --git a/CHANGES.txt b/CHANGES.txt
index 8b44b6f..f01ad9a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,13 +3,16 @@
Added: @Factory(dataProvider / dataProviderClass) on constructors
Added: assertNotEquals() to Assert
Added: assertArrayEquals() to AssertJUnit
+Fixed: TESTNG-471: assertEquals(Map, Map) fails if a map is a subset of the other
Fixed: JUnitReporter generates an <error> tag for successful expectedExceptions tests
Eclipse:
+Added: Two new @Test refactorings (pull to class level, push to method level)
Added: JUnit conversion: @Ignore
Added: JUnit conversion: assertArrayEquals()
Added: JUnit conversion: @RunWith(Parameterized.class)
+Fixed: Workspace-wide XML template files are not being honored.
Fixed: @BeforeClass/@AfterClass from JUnit4 are not being properly converted
Fixed: Conversions generate @Test() instead of @Test
diff --git a/src/main/java/org/testng/Assert.java b/src/main/java/org/testng/Assert.java
index 3be66f6..fa7aaa3 100644
--- a/src/main/java/org/testng/Assert.java
+++ b/src/main/java/org/testng/Assert.java
@@ -698,6 +698,10 @@
fail("Maps not equal: expected: " + expected + " and actual: " + actual);
}
+ if (actual.size() != expected.size()) {
+ fail("Maps do not have the same size:" + actual.size() + " != " + expected.size());
+ }
+
Set entrySet = actual.entrySet();
for (Iterator iterator = entrySet.iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
diff --git a/src/test/java/org/testng/AssertTest.java b/src/test/java/org/testng/AssertTest.java
index 4680756..10e3af8 100644
--- a/src/test/java/org/testng/AssertTest.java
+++ b/src/test/java/org/testng/AssertTest.java
@@ -5,6 +5,7 @@
import org.testng.internal.annotations.Sets;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -101,4 +102,17 @@
//do nothing
}
}
+
+ @Test(expectedExceptions = AssertionError.class)
+ public void assertEqualsMapShouldFail() {
+ Map<String, String> mapActual = new HashMap<String, String>() {{
+ put("a","1");
+ }};
+ Map<String, String> mapExpected = new HashMap<String, String>() {{
+ put("a","1");
+ put("b","2");
+ }};
+
+ Assert.assertEquals(mapActual, mapExpected);
+ }
}