@@ -563,4 +563,80 @@ public void checkArrayNotEqualsFailsWhenDifferentOrder() {
563563
564564 assertNotEquals (array1 , array2 );
565565 }
566+
567+ @ Test
568+ public void checkMapEquals () {
569+ Map <String , Object > map1 = new LinkedHashMap <>();
570+ map1 .put ("a" , "1" );
571+ map1 .put ("b" , 2 );
572+ Map <String , Object > map2 = new LinkedHashMap <>();
573+ map2 .put ("b" , 2 );
574+ map2 .put ("a" , "1" );
575+
576+ assertMapsEqual (map1 , map2 );
577+ }
578+
579+ @ Test
580+ public void checkMapNotEquals () {
581+ Map <String , Object > map1 = new LinkedHashMap <>();
582+ map1 .put ("a" , "1" );
583+ map1 .put ("b" , "2" );
584+ Map <String , Object > map2 = new LinkedHashMap <>();
585+ map2 .put ("a" , "1" );
586+ map2 .put ("b" , 2 );
587+
588+ assertMapsNotEqual (map1 , map2 );
589+ }
590+
591+ @ Test (description = "GITHUB-2913" )
592+ public void checkMapNotEqualsWithNull () {
593+ Map <String , Object > map1 = new LinkedHashMap <>();
594+ map1 .put ("a" , 1 );
595+ map1 .put ("b" , null );
596+ Map <String , Object > map2 = new LinkedHashMap <>();
597+ map2 .put ("a" , 1 );
598+ map2 .put ("c" , null );
599+
600+ assertMapsNotEqual (map1 , map2 );
601+ }
602+
603+ protected void assertMapsEqual (Map m1 , Map m2 ) {
604+ assertEquals ((Object ) m1 , (Object ) m2 );
605+ assertEquals (m1 , m2 );
606+
607+ boolean succeeded = false ;
608+ try {
609+ assertNotEquals ((Object ) m1 , (Object ) m2 );
610+ succeeded = true ;
611+ } catch (AssertionError expected ) {
612+ }
613+ assertFalse (succeeded , "Maps reported as not equal when equal: " + m1 + " / " + m2 );
614+
615+ try {
616+ assertNotEquals (m1 , m2 );
617+ succeeded = true ;
618+ } catch (AssertionError expected ) {
619+ }
620+ assertFalse (succeeded , "Maps reported as not equal when equal: " + m1 + " / " + m2 );
621+ }
622+
623+ protected void assertMapsNotEqual (Map m1 , Map m2 ) {
624+ boolean succeeded = false ;
625+ try {
626+ assertEquals ((Object ) m1 , (Object ) m2 );
627+ succeeded = true ;
628+ } catch (AssertionError expected ) {
629+ }
630+ assertFalse (succeeded , "Maps reported as equal when not equal: " + m1 + " / " + m2 );
631+
632+ try {
633+ assertEquals (m1 , m2 );
634+ succeeded = true ;
635+ } catch (AssertionError expected ) {
636+ }
637+ assertFalse (succeeded , "Maps reported as equal when not equal: " + m1 + " / " + m2 );
638+
639+ assertNotEquals ((Object ) m1 , (Object ) m2 );
640+ assertNotEquals (m1 , m2 );
641+ }
566642}
0 commit comments