@@ -288,6 +288,40 @@ - (void)testIAMNilCacheToNilMigration {
288288 XCTAssertNil (retrievedDict);
289289}
290290
291+ - (void )testIAMToInternalMigration {
292+ let limit = 5 ;
293+ let delay = 60 ;
294+ let message = [OSInAppMessageTestHelper testMessageWithRedisplayLimit: limit delay: @(delay)];
295+ message.isDisplayedInSession = true ;
296+
297+ // Cached Messages
298+ NSArray <OSInAppMessageInternal *> *messages = [[NSArray alloc ] initWithObjects: message, nil ];
299+
300+ [NSKeyedArchiver setClassName: @" OSInAppMessage" forClass: [OSInAppMessageInternal class ]];
301+
302+ [OneSignalUserDefaults.initStandard saveCodeableDataForKey: OS_IAM_MESSAGES_ARRAY withValue: messages];
303+
304+ [migrationController migrate ];
305+
306+ NSArray <OSInAppMessageInternal *>*retrievedArray = [OneSignalUserDefaults.initStandard
307+ getSavedCodeableDataForKey: OS_IAM_MESSAGES_ARRAY defaultValue: nil ];
308+ XCTAssertEqualObjects (messages, retrievedArray);
309+
310+ // Cached Redisplay Messages
311+ NSMutableDictionary <NSString *, OSInAppMessageInternal *> *redisplayedInAppMessages = [NSMutableDictionary new ];
312+ [redisplayedInAppMessages setObject: message forKey: message.messageId];
313+
314+ [NSKeyedArchiver setClassName: @" OSInAppMessage" forClass: [OSInAppMessageInternal class ]];
315+
316+ [OneSignalUserDefaults.initStandard saveCodeableDataForKey: OS_IAM_REDISPLAY_DICTIONARY withValue: redisplayedInAppMessages];
317+
318+ [migrationController migrate ];
319+
320+ NSDictionary <NSString *, OSInAppMessageInternal *>*retrievedDict = [OneSignalUserDefaults.initStandard
321+ getSavedCodeableDataForKey: OS_IAM_REDISPLAY_DICTIONARY defaultValue: nil ];
322+ XCTAssertEqualObjects (redisplayedInAppMessages, retrievedDict);
323+ }
324+
291325
292326
293327
0 commit comments