2828import java .util .Arrays ;
2929import java .util .Collections ;
3030import java .util .HashMap ;
31+ import java .util .HashSet ;
3132import java .util .List ;
3233import java .util .Map ;
3334import java .util .UUID ;
@@ -135,7 +136,7 @@ void convertDiff() {
135136 expectedPartitionToReplacedFileIds .put (
136137 partitionPath1 , Arrays .asList (fileName3 , fileIdForFile4 ));
137138 expectedPartitionToReplacedFileIds .put (partitionPath2 , Collections .singletonList (fileName5 ));
138- assertEquals (
139+ assertEqualsIgnoreOrder (
139140 expectedPartitionToReplacedFileIds , replaceMetadata .getPartitionToReplacedFileIds ());
140141
141142 // validate added files
@@ -146,6 +147,16 @@ void convertDiff() {
146147 assertWriteStatusesEquivalent (expectedWriteStatuses , replaceMetadata .getWriteStatuses ());
147148 }
148149
150+ private void assertEqualsIgnoreOrder (
151+ Map <String , List <String >> expected , Map <String , List <String >> actual ) {
152+ for (Map .Entry <String , List <String >> entry : expected .entrySet ()) {
153+ List <?> expectedList = entry .getValue ();
154+ List <?> actualList = actual .get (entry .getKey ());
155+ assertEquals (expectedList .size (), actualList .size ());
156+ assertEquals (new HashSet <>(expectedList ), new HashSet <>(actualList ));
157+ }
158+ }
159+
149160 @ Test
150161 void extractSnapshotChanges_emptyTargetTable () throws IOException {
151162 String tableBasePath = tempDir .resolve (UUID .randomUUID ().toString ()).toString ();
0 commit comments