@@ -22,14 +22,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
22
22
func testDescendingSorting( ) {
23
23
let expectation1 = expectation ( description: " testDescendingSorting " )
24
24
25
- let model = InboxViewControllerViewModel ( )
26
- model. comparator = IterableInboxViewController . DefaultComparator. descending
27
-
28
25
let fetcher = MockInAppFetcher ( )
29
-
30
- IterableAPI . initializeForTesting (
31
- inAppFetcher: fetcher
32
- )
26
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
27
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
28
+ model. comparator = IterableInboxViewController . DefaultComparator. descending
33
29
34
30
let date1 = Date ( )
35
31
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -51,7 +47,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
51
47
inboxMetadata: nil ,
52
48
customPayload: nil ) ,
53
49
]
54
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
50
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
55
51
56
52
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
57
53
model. beganUpdates ( )
@@ -66,14 +62,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
66
62
func testAscendingSorting( ) {
67
63
let expectation1 = expectation ( description: " testAscendingSorting " )
68
64
69
- let model = InboxViewControllerViewModel ( )
70
- model. comparator = IterableInboxViewController . DefaultComparator. ascending
71
-
72
65
let fetcher = MockInAppFetcher ( )
73
-
74
- IterableAPI . initializeForTesting (
75
- inAppFetcher: fetcher
76
- )
66
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
67
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
68
+ model. comparator = IterableInboxViewController . DefaultComparator. ascending
77
69
78
70
let date1 = Date ( )
79
71
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -95,7 +87,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
95
87
inboxMetadata: nil ,
96
88
customPayload: nil ) ,
97
89
]
98
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
90
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
99
91
100
92
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
101
93
model. beganUpdates ( )
@@ -110,13 +102,9 @@ class InboxViewControllerViewModelTests: XCTestCase {
110
102
func testNoSortingIsDescending( ) {
111
103
let expectation1 = expectation ( description: " testNoSorting " )
112
104
113
- let model = InboxViewControllerViewModel ( )
114
-
115
105
let fetcher = MockInAppFetcher ( )
116
-
117
- IterableAPI . initializeForTesting (
118
- inAppFetcher: fetcher
119
- )
106
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
107
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
120
108
121
109
let date1 = Date ( )
122
110
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -138,7 +126,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
138
126
inboxMetadata: nil ,
139
127
customPayload: nil ) ,
140
128
]
141
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
129
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
142
130
143
131
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
144
132
model. beganUpdates ( )
@@ -153,13 +141,9 @@ class InboxViewControllerViewModelTests: XCTestCase {
153
141
func testWithNoFiltering( ) {
154
142
let expectation1 = expectation ( description: " testWithNoFiltering " )
155
143
156
- let model = InboxViewControllerViewModel ( )
157
-
158
144
let fetcher = MockInAppFetcher ( )
159
-
160
- IterableAPI . initializeForTesting (
161
- inAppFetcher: fetcher
162
- )
145
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
146
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
163
147
164
148
let date1 = Date ( )
165
149
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -181,7 +165,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
181
165
inboxMetadata: nil ,
182
166
customPayload: nil ) ,
183
167
]
184
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
168
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
185
169
186
170
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
187
171
model. beganUpdates ( )
@@ -197,14 +181,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
197
181
func testCustomFiltering( ) {
198
182
let expectation1 = expectation ( description: " testCustomFiltering " )
199
183
200
- let model = InboxViewControllerViewModel ( )
201
- model. filter = { $0. messageId == " message1 " }
202
-
203
184
let fetcher = MockInAppFetcher ( )
204
-
205
- IterableAPI . initializeForTesting (
206
- inAppFetcher: fetcher
207
- )
185
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
186
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
187
+ model. filter = { $0. messageId == " message1 " }
208
188
209
189
let date1 = Date ( )
210
190
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -226,7 +206,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
226
206
inboxMetadata: nil ,
227
207
customPayload: nil ) ,
228
208
]
229
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
209
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
230
210
231
211
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
232
212
model. beganUpdates ( )
@@ -241,14 +221,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
241
221
func testSampleFilter( ) {
242
222
let expectation1 = expectation ( description: " testSampleFilter " )
243
223
244
- let model = InboxViewControllerViewModel ( )
245
- model. filter = SampleInboxViewDelegateImplementations . Filter. usingCustomPayloadMessageType ( in: " promotional " )
246
-
247
224
let fetcher = MockInAppFetcher ( )
248
-
249
- IterableAPI . initializeForTesting (
250
- inAppFetcher: fetcher
251
- )
225
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
226
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
227
+ model. filter = SampleInboxViewDelegateImplementations . Filter. usingCustomPayloadMessageType ( in: " promotional " )
252
228
253
229
let date1 = Date ( )
254
230
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -270,7 +246,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
270
246
inboxMetadata: nil ,
271
247
customPayload: [ " messageType " : " promotional " ] ) ,
272
248
]
273
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
249
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
274
250
275
251
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
276
252
model. beganUpdates ( )
@@ -285,7 +261,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
285
261
func testImageLoadingForExistingImage( ) {
286
262
let expectation1 = expectation ( description: " testImageLoadingForExistingImage " )
287
263
288
- let model = InboxViewControllerViewModel ( )
264
+ let mockNetworkSession = MockNetworkSession ( statusCode: 200 , data: Data ( repeating: 0 , count: 100 ) )
265
+ let fetcher = MockInAppFetcher ( )
266
+ let internalAPI = IterableAPIInternal . initializeForTesting ( networkSession: mockNetworkSession, inAppFetcher: fetcher)
267
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
289
268
290
269
let mockView = MockViewModelView ( )
291
270
mockView. onImageLoadedCallback = { indexPath in
@@ -294,13 +273,6 @@ class InboxViewControllerViewModelTests: XCTestCase {
294
273
}
295
274
model. view = mockView
296
275
297
- let mockNetworkSession = MockNetworkSession ( statusCode: 200 , data: Data ( repeating: 0 , count: 100 ) )
298
- let fetcher = MockInAppFetcher ( )
299
- IterableAPI . initializeForTesting (
300
- networkSession: mockNetworkSession,
301
- inAppFetcher: fetcher
302
- )
303
-
304
276
let imageLocation = Bundle ( for: type ( of: self ) ) . url ( forResource: " image " , withExtension: " jpg " ) !. absoluteString
305
277
306
278
let messages = [
@@ -312,7 +284,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
312
284
inboxMetadata: IterableInboxMetadata ( title: " inbox title " , subtitle: " inbox subtitle " , icon: imageLocation) ,
313
285
customPayload: [ " messageType " : " transactional " ] ) ,
314
286
]
315
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
287
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
316
288
317
289
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
318
290
model. beganUpdates ( )
@@ -327,7 +299,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
327
299
let expectation1 = expectation ( description: " testImageLoadingForNonExistingImage " )
328
300
expectation1. isInverted = true
329
301
330
- let model = InboxViewControllerViewModel ( )
302
+ let mockNetworkSession = MockNetworkSession ( statusCode: 404 , data: nil )
303
+ let fetcher = MockInAppFetcher ( )
304
+ let internalAPI = IterableAPIInternal . initializeForTesting ( networkSession: mockNetworkSession, inAppFetcher: fetcher)
305
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
331
306
332
307
let mockView = MockViewModelView ( )
333
308
mockView. onImageLoadedCallback = { indexPath in
@@ -336,13 +311,6 @@ class InboxViewControllerViewModelTests: XCTestCase {
336
311
}
337
312
model. view = mockView
338
313
339
- let mockNetworkSession = MockNetworkSession ( statusCode: 404 , data: nil )
340
- let fetcher = MockInAppFetcher ( )
341
- IterableAPI . initializeForTesting (
342
- networkSession: mockNetworkSession,
343
- inAppFetcher: fetcher
344
- )
345
-
346
314
let imageLocation = " file:///something.png "
347
315
348
316
let messages = [
@@ -354,7 +322,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
354
322
inboxMetadata: IterableInboxMetadata ( title: " inbox title " , subtitle: " inbox subtitle " , icon: imageLocation) ,
355
323
customPayload: [ " messageType " : " transactional " ] ) ,
356
324
]
357
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
325
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
358
326
359
327
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
360
328
model. beganUpdates ( )
@@ -368,14 +336,10 @@ class InboxViewControllerViewModelTests: XCTestCase {
368
336
func testSampleSectionMapper( ) {
369
337
let expectation1 = expectation ( description: " testSampleSectionMapper " )
370
338
371
- let model = InboxViewControllerViewModel ( )
372
- model. sectionMapper = SampleInboxViewDelegateImplementations . SectionMapper. usingCustomPayloadMessageSection
373
-
374
339
let fetcher = MockInAppFetcher ( )
375
-
376
- IterableAPI . initializeForTesting (
377
- inAppFetcher: fetcher
378
- )
340
+ let internalAPI = IterableAPIInternal . initializeForTesting ( inAppFetcher: fetcher)
341
+ let model = InboxViewControllerViewModel ( internalAPIProvider: internalAPI)
342
+ model. sectionMapper = SampleInboxViewDelegateImplementations . SectionMapper. usingCustomPayloadMessageSection
379
343
380
344
let date1 = Date ( )
381
345
let date2 = date1. addingTimeInterval ( 5.0 )
@@ -397,7 +361,7 @@ class InboxViewControllerViewModelTests: XCTestCase {
397
361
inboxMetadata: nil ,
398
362
customPayload: nil ) ,
399
363
]
400
- fetcher. mockMessagesAvailableFromServer ( messages: messages)
364
+ fetcher. mockMessagesAvailableFromServer ( internalApi : internalAPI , messages: messages)
401
365
402
366
DispatchQueue . main. asyncAfter ( deadline: . now( ) + 1.0 ) {
403
367
model. beganUpdates ( )
0 commit comments