@@ -11,7 +11,6 @@ class InboxTests: XCTestCase {
11
11
override class func setUp( ) {
12
12
super. setUp ( )
13
13
TestUtils . clearTestUserDefaults ( )
14
- IterableAPI . internalImplementation = nil
15
14
}
16
15
17
16
func testInboxOrdering( ) {
@@ -20,7 +19,7 @@ class InboxTests: XCTestCase {
20
19
let config = IterableConfig ( )
21
20
config. logDelegate = AllLogDelegate ( )
22
21
23
- IterableAPI . initializeForTesting (
22
+ let internalAPI = IterableAPIInternal . initializeForTesting (
24
23
config: config,
25
24
inAppFetcher: mockInAppFetcher
26
25
)
@@ -63,8 +62,8 @@ class InboxTests: XCTestCase {
63
62
}
64
63
""" . toJsonDict ( )
65
64
66
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
67
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
65
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
66
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
68
67
XCTAssertEqual ( messages. count, 2 )
69
68
XCTAssertEqual ( messages [ 0 ] . messageId, " message2 " )
70
69
XCTAssertEqual ( messages [ 1 ] . messageId, " message4 " )
@@ -80,7 +79,7 @@ class InboxTests: XCTestCase {
80
79
let config = IterableConfig ( )
81
80
config. logDelegate = AllLogDelegate ( )
82
81
83
- IterableAPI . initializeForTesting (
82
+ let internalAPI = IterableAPIInternal . initializeForTesting (
84
83
config: config,
85
84
inAppFetcher: mockInAppFetcher
86
85
)
@@ -108,18 +107,18 @@ class InboxTests: XCTestCase {
108
107
}
109
108
""" . toJsonDict ( )
110
109
111
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
112
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
110
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
111
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
113
112
XCTAssertEqual ( messages. count, 2 )
114
113
115
- IterableAPI . inAppManager. set ( read: true , forMessage: messages [ 1 ] )
114
+ internalAPI . inAppManager. set ( read: true , forMessage: messages [ 1 ] )
116
115
117
116
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 0.05 ) {
118
117
XCTAssertEqual ( messages [ 0 ] . read, false )
119
118
XCTAssertEqual ( messages [ 1 ] . read, true )
120
119
121
- let unreadMessages = IterableAPI . inAppManager. getInboxMessages ( ) . filter { $0. read == false }
122
- XCTAssertEqual ( IterableAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 1 )
120
+ let unreadMessages = internalAPI . inAppManager. getInboxMessages ( ) . filter { $0. read == false }
121
+ XCTAssertEqual ( internalAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 1 )
123
122
XCTAssertEqual ( unreadMessages. count, 1 )
124
123
XCTAssertEqual ( unreadMessages [ 0 ] . read, false )
125
124
expectation1. fulfill ( )
@@ -133,7 +132,7 @@ class InboxTests: XCTestCase {
133
132
let expectation1 = expectation ( description: " testReceiveReadMessage " )
134
133
let mockInAppFetcher = MockInAppFetcher ( )
135
134
136
- IterableAPI . initializeForTesting ( inAppFetcher: mockInAppFetcher)
135
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: mockInAppFetcher)
137
136
138
137
let payload = """
139
138
{ " inAppMessages " : [{
@@ -147,8 +146,8 @@ class InboxTests: XCTestCase {
147
146
}
148
147
""" . toJsonDict ( )
149
148
150
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
151
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
149
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
150
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
152
151
153
152
if let msg = messages. first, msg. read {
154
153
expectation1. fulfill ( )
@@ -166,7 +165,7 @@ class InboxTests: XCTestCase {
166
165
let config = IterableConfig ( )
167
166
config. logDelegate = AllLogDelegate ( )
168
167
169
- IterableAPI . initializeForTesting (
168
+ let internalAPI = IterableAPIInternal . initializeForTesting (
170
169
config: config,
171
170
inAppFetcher: mockInAppFetcher
172
171
)
@@ -194,13 +193,13 @@ class InboxTests: XCTestCase {
194
193
}
195
194
""" . toJsonDict ( )
196
195
197
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
198
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
196
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
197
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
199
198
XCTAssertEqual ( messages. count, 2 )
200
199
201
- IterableAPI . inAppManager. remove ( message: messages [ 0 ] , location: . inbox, source: . inboxSwipe)
200
+ internalAPI . inAppManager. remove ( message: messages [ 0 ] , location: . inbox, source: . inboxSwipe)
202
201
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 0.05 ) {
203
- let newMessages = IterableAPI . inAppManager. getInboxMessages ( )
202
+ let newMessages = internalAPI . inAppManager. getInboxMessages ( )
204
203
XCTAssertEqual ( newMessages. count, 1 )
205
204
expectation1. fulfill ( )
206
205
}
@@ -215,6 +214,7 @@ class InboxTests: XCTestCase {
215
214
let expectation3 = expectation ( description: " Right url callback " )
216
215
let expectation4 = expectation ( description: " wait for messages " )
217
216
217
+ var internalAPI : IterableAPIInternal !
218
218
let mockInAppFetcher = MockInAppFetcher ( )
219
219
220
220
let mockInAppDisplayer = MockInAppDisplayer ( )
@@ -228,15 +228,15 @@ class InboxTests: XCTestCase {
228
228
mockUrlDelegate. callback = { url, _ in
229
229
XCTAssertEqual ( url. absoluteString, " https://someurl.com " )
230
230
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 0.05 ) {
231
- XCTAssertEqual ( IterableAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 1 )
231
+ XCTAssertEqual ( internalAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 1 )
232
232
expectation2. fulfill ( )
233
233
}
234
234
}
235
235
let config = IterableConfig ( )
236
236
config. urlDelegate = mockUrlDelegate
237
237
config. logDelegate = AllLogDelegate ( )
238
238
239
- IterableAPI . initializeForTesting (
239
+ internalAPI = IterableAPIInternal . initializeForTesting (
240
240
config: config,
241
241
inAppFetcher: mockInAppFetcher,
242
242
inAppDisplayer: mockInAppDisplayer
@@ -265,14 +265,14 @@ class InboxTests: XCTestCase {
265
265
}
266
266
""" . toJsonDict ( )
267
267
268
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
268
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
269
269
expectation4. fulfill ( )
270
270
}
271
271
wait ( for: [ expectation4] , timeout: testExpectationTimeout)
272
- XCTAssertEqual ( IterableAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 2 )
272
+ XCTAssertEqual ( internalAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 2 )
273
273
274
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
275
- IterableAPI . inAppManager. show ( message: messages [ 0 ] , consume: false ) { clickedUrl in
274
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
275
+ internalAPI . inAppManager. show ( message: messages [ 0 ] , consume: false ) { clickedUrl in
276
276
XCTAssertEqual ( clickedUrl!. absoluteString, " https://someurl.com " )
277
277
expectation3. fulfill ( )
278
278
}
@@ -285,19 +285,20 @@ class InboxTests: XCTestCase {
285
285
expectation1. expectedFulfillmentCount = 2
286
286
let expectation2 = expectation ( description: " testInboxNewMessagesCallback: finish payload processing " )
287
287
288
+ var internalAPI : IterableAPIInternal !
288
289
let mockInAppFetcher = MockInAppFetcher ( )
289
290
290
291
var callbackCount = 0
291
292
let mockInAppDelegate = MockInAppDelegate ( showInApp: . skip)
292
293
let mockNotificationCenter = MockNotificationCenter ( )
293
294
mockNotificationCenter. addCallback ( forNotification: . iterableInboxChanged) {
294
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
295
+ let messages = internalAPI . inAppManager. getInboxMessages ( )
295
296
if callbackCount == 0 {
296
297
XCTAssertEqual ( messages. count, 1 )
297
- XCTAssertEqual ( messages [ 0 ] . messageId, " message0 " , " inboxMessages: \( IterableAPI . inAppManager. getInboxMessages ( ) ) " )
298
+ XCTAssertEqual ( messages [ 0 ] . messageId, " message0 " , " inboxMessages: \( internalAPI . inAppManager. getInboxMessages ( ) ) " )
298
299
} else {
299
300
XCTAssertEqual ( messages. count, 2 )
300
- XCTAssertEqual ( messages [ 1 ] . messageId, " message1 " , " inboxMessages: \( IterableAPI . inAppManager. getInboxMessages ( ) ) " )
301
+ XCTAssertEqual ( messages [ 1 ] . messageId, " message1 " , " inboxMessages: \( internalAPI . inAppManager. getInboxMessages ( ) ) " )
301
302
}
302
303
expectation1. fulfill ( )
303
304
callbackCount += 1
@@ -307,7 +308,7 @@ class InboxTests: XCTestCase {
307
308
config. inAppDelegate = mockInAppDelegate
308
309
config. logDelegate = AllLogDelegate ( )
309
310
310
- IterableAPI . initializeForTesting (
311
+ internalAPI = IterableAPIInternal . initializeForTesting (
311
312
config: config,
312
313
inAppFetcher: mockInAppFetcher,
313
314
notificationCenter: mockNotificationCenter
@@ -328,7 +329,7 @@ class InboxTests: XCTestCase {
328
329
}
329
330
""" . toJsonDict ( )
330
331
331
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
332
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
332
333
expectation2. fulfill ( )
333
334
}
334
335
wait ( for: [ expectation2] , timeout: testExpectationTimeout)
@@ -356,7 +357,7 @@ class InboxTests: XCTestCase {
356
357
}
357
358
""" . toJsonDict ( )
358
359
359
- mockInAppFetcher. mockInAppPayloadFromServer ( payload2)
360
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload2)
360
361
361
362
wait ( for: [ expectation1] , timeout: testExpectationTimeout)
362
363
}
@@ -383,22 +384,25 @@ class InboxTests: XCTestCase {
383
384
persister. clear ( )
384
385
persister. persist ( messages)
385
386
387
+ var internalAPI : IterableAPIInternal !
386
388
let config = IterableConfig ( )
387
389
let mockInAppDelegate = MockInAppDelegate ( showInApp: . skip)
388
390
389
391
let mockNotificationCenter = MockNotificationCenter ( )
390
392
mockNotificationCenter. addCallback ( forNotification: . iterableInboxChanged) {
391
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
392
- XCTAssertEqual ( messages. count, 1 )
393
- expectation1. fulfill ( )
393
+ DispatchQueue . main. async {
394
+ let messages = internalAPI. inAppManager. getInboxMessages ( )
395
+ XCTAssertEqual ( messages. count, 1 )
396
+ expectation1. fulfill ( )
397
+ }
394
398
}
395
399
396
400
config. inAppDelegate = mockInAppDelegate
397
401
config. logDelegate = AllLogDelegate ( )
398
402
399
403
let mockInAppFetcher = MockInAppFetcher ( messages: messages)
400
404
401
- IterableAPI . initializeForTesting (
405
+ internalAPI = IterableAPIInternal . initializeForTesting (
402
406
config: config,
403
407
inAppFetcher: mockInAppFetcher,
404
408
inAppPersister: persister,
@@ -417,6 +421,7 @@ class InboxTests: XCTestCase {
417
421
let expectation3 = expectation ( description: " payload 1 processed " )
418
422
let expectation4 = expectation ( description: " payload 2 processed " )
419
423
424
+ var internalAPI : IterableAPIInternal !
420
425
let mockInAppFetcher = MockInAppFetcher ( )
421
426
422
427
var inAppCallbackCount = 0
@@ -434,23 +439,25 @@ class InboxTests: XCTestCase {
434
439
var inboxCallbackCount = 0
435
440
let mockNotificationCenter = MockNotificationCenter ( )
436
441
mockNotificationCenter. addCallback ( forNotification: . iterableInboxChanged) {
437
- let messages = IterableAPI . inAppManager. getInboxMessages ( )
438
- if inboxCallbackCount == 0 {
439
- XCTAssertEqual ( messages. count, 1 , " inboxMessages: \( IterableAPI . inAppManager. getInboxMessages ( ) ) " )
440
- XCTAssertEqual ( messages [ 0 ] . messageId, " message0 " )
441
- } else {
442
- XCTAssertEqual ( messages. count, 2 )
443
- XCTAssertEqual ( messages [ 1 ] . messageId, " message1 " )
442
+ DispatchQueue . main. async {
443
+ let messages = internalAPI. inAppManager. getInboxMessages ( )
444
+ if inboxCallbackCount == 0 {
445
+ XCTAssertEqual ( messages. count, 1 , " inboxMessages: \( internalAPI. inAppManager. getInboxMessages ( ) ) " )
446
+ XCTAssertEqual ( messages [ 0 ] . messageId, " message0 " )
447
+ } else {
448
+ XCTAssertEqual ( messages. count, 2 )
449
+ XCTAssertEqual ( messages [ 1 ] . messageId, " message1 " )
450
+ }
451
+ expectation1. fulfill ( )
452
+ inboxCallbackCount += 1
444
453
}
445
- expectation1. fulfill ( )
446
- inboxCallbackCount += 1
447
454
}
448
455
449
456
let config = IterableConfig ( )
450
457
config. inAppDelegate = mockInAppDelegate
451
458
config. logDelegate = AllLogDelegate ( )
452
459
453
- IterableAPI . initializeForTesting (
460
+ internalAPI = IterableAPIInternal . initializeForTesting (
454
461
config: config,
455
462
inAppFetcher: mockInAppFetcher,
456
463
notificationCenter: mockNotificationCenter
@@ -479,7 +486,7 @@ class InboxTests: XCTestCase {
479
486
}
480
487
""" . toJsonDict ( )
481
488
482
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
489
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
483
490
expectation3. fulfill ( )
484
491
}
485
492
wait ( for: [ expectation3] , timeout: testExpectationTimeout)
@@ -523,7 +530,7 @@ class InboxTests: XCTestCase {
523
530
}
524
531
""" . toJsonDict ( )
525
532
526
- mockInAppFetcher. mockInAppPayloadFromServer ( payload2) . onSuccess { _ in
533
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload2) . onSuccess { _ in
527
534
expectation4. fulfill ( )
528
535
}
529
536
@@ -535,6 +542,7 @@ class InboxTests: XCTestCase {
535
542
let expectation2 = expectation ( description: " Unread count decrements after showing " )
536
543
let expectation3 = expectation ( description: " testShowNowAndInboxMessage: wait for processing " )
537
544
545
+ var internalAPI : IterableAPIInternal !
538
546
let mockInAppFetcher = MockInAppFetcher ( )
539
547
540
548
let mockInAppDisplayer = MockInAppDisplayer ( )
@@ -548,16 +556,16 @@ class InboxTests: XCTestCase {
548
556
mockUrlDelegate. callback = { url, _ in
549
557
XCTAssertEqual ( url. absoluteString, " https://someurl.com " )
550
558
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 0.05 ) {
551
- XCTAssertEqual ( IterableAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 0 )
552
- XCTAssertEqual ( IterableAPI . inAppManager. getMessages ( ) . count, 2 )
559
+ XCTAssertEqual ( internalAPI . inAppManager. getUnreadInboxMessagesCount ( ) , 0 )
560
+ XCTAssertEqual ( internalAPI . inAppManager. getMessages ( ) . count, 2 )
553
561
expectation2. fulfill ( )
554
562
}
555
563
}
556
564
let config = IterableConfig ( )
557
565
config. urlDelegate = mockUrlDelegate
558
566
config. logDelegate = AllLogDelegate ( )
559
567
560
- IterableAPI . initializeForTesting (
568
+ internalAPI = IterableAPIInternal . initializeForTesting (
561
569
config: config,
562
570
inAppFetcher: mockInAppFetcher,
563
571
inAppDisplayer: mockInAppDisplayer
@@ -586,7 +594,7 @@ class InboxTests: XCTestCase {
586
594
}
587
595
""" . toJsonDict ( )
588
596
589
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
597
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
590
598
expectation3. fulfill ( )
591
599
}
592
600
wait ( for: [ expectation3, expectation1, expectation2] , timeout: testExpectationTimeout)
@@ -598,15 +606,16 @@ class InboxTests: XCTestCase {
598
606
let expectation1 = expectation ( description: " initial messages sent " )
599
607
let expectation2 = expectation ( description: " inbox change notification is fired on logout " )
600
608
609
+ var internalAPI : IterableAPIInternal !
601
610
let mockInAppFetcher = MockInAppFetcher ( )
602
611
let mockNotificationCenter = MockNotificationCenter ( )
603
612
604
- IterableAPI . initializeForTesting (
613
+ internalAPI = IterableAPIInternal . initializeForTesting (
605
614
config: IterableConfig ( ) ,
606
615
inAppFetcher: mockInAppFetcher,
607
616
notificationCenter: mockNotificationCenter
608
617
)
609
- IterableAPI . email
= " [email protected] "
618
+ internalAPI . email
= " [email protected] "
610
619
611
620
let payload = """
612
621
{ " inAppMessages " :
@@ -623,20 +632,20 @@ class InboxTests: XCTestCase {
623
632
}
624
633
""" . toJsonDict ( )
625
634
626
- mockInAppFetcher. mockInAppPayloadFromServer ( payload) . onSuccess { _ in
627
- XCTAssertEqual ( IterableAPI . inAppManager. getMessages ( ) . count, 1 )
635
+ mockInAppFetcher. mockInAppPayloadFromServer ( internalApi : internalAPI , payload) . onSuccess { _ in
636
+ XCTAssertEqual ( internalAPI . inAppManager. getMessages ( ) . count, 1 )
628
637
expectation1. fulfill ( )
629
638
630
639
mockNotificationCenter. addCallback ( forNotification: . iterableInboxChanged) {
631
640
expectation2. fulfill ( )
632
641
}
633
- IterableAPI . email = nil
642
+ internalAPI . email = nil
634
643
}
635
644
636
645
wait ( for: [ expectation1] , timeout: testExpectationTimeout)
637
646
638
647
let predicate = NSPredicate { ( _, _) -> Bool in
639
- IterableAPI . inAppManager. getMessages ( ) . count == 0
648
+ internalAPI . inAppManager. getMessages ( ) . count == 0
640
649
}
641
650
642
651
let expectation3 = expectation ( for: predicate, evaluatedWith: nil , handler: nil )
0 commit comments