@@ -12,7 +12,10 @@ final class EmbeddedManagerTests: XCTestCase {
12
12
13
13
let mockApiClient = MockApiClient ( )
14
14
15
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
15
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
16
+ urlDelegate: nil ,
17
+ urlOpener: MockUrlOpener ( ) ,
18
+ allowedProtocols: [ ] )
16
19
17
20
let view1 = ViewWithUpdateDelegate (
18
21
onMessagesUpdatedCallback: {
@@ -32,7 +35,10 @@ final class EmbeddedManagerTests: XCTestCase {
32
35
// getMessages
33
36
func testGetMessagesWhenEmpty( ) {
34
37
let mockApiClient = MockApiClient ( )
35
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
38
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
39
+ urlDelegate: nil ,
40
+ urlOpener: MockUrlOpener ( ) ,
41
+ allowedProtocols: [ ] )
36
42
XCTAssertEqual ( manager. getMessages ( ) . count, 0 )
37
43
}
38
44
func testGetMessagesForPlacement( ) {
@@ -43,9 +49,12 @@ final class EmbeddedManagerTests: XCTestCase {
43
49
IterableEmbeddedMessage ( messageId: " 3 " , placementId: 2 ) ,
44
50
IterableEmbeddedMessage ( messageId: " 4 " , placementId: 3 ) ,
45
51
] )
46
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
52
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
53
+ urlDelegate: nil ,
54
+ urlOpener: MockUrlOpener ( ) ,
55
+ allowedProtocols: [ ] )
47
56
48
- manager. syncMessages { }
57
+ manager. syncMessages { }
49
58
50
59
let messagesForPlacement2 = manager. getMessages ( for: 2 )
51
60
@@ -67,7 +76,10 @@ final class EmbeddedManagerTests: XCTestCase {
67
76
IterableEmbeddedMessage ( messageId: " 2 " , placementId: 1 ) ,
68
77
] )
69
78
70
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
79
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
80
+ urlDelegate: nil ,
81
+ urlOpener: MockUrlOpener ( ) ,
82
+ allowedProtocols: [ ] )
71
83
72
84
let view = ViewWithUpdateDelegate (
73
85
onMessagesUpdatedCallback: {
@@ -84,12 +96,42 @@ final class EmbeddedManagerTests: XCTestCase {
84
96
85
97
wait ( for: [ syncMessagesExpectation, delegateExpectation] , timeout: 2 )
86
98
}
99
+
100
+ func testManagerReset( ) {
101
+ let syncMessagesExpectation = expectation ( description: " syncMessages should complete " )
102
+
103
+ let mockApiClient = MockApiClient ( )
104
+
105
+ mockApiClient. populateMessages ( [
106
+ IterableEmbeddedMessage ( messageId: " 1 " , placementId: 1 ) ,
107
+ IterableEmbeddedMessage ( messageId: " 2 " , placementId: 1 ) ,
108
+ ] )
109
+
110
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
111
+ urlDelegate: nil ,
112
+ urlOpener: MockUrlOpener ( ) ,
113
+ allowedProtocols: [ ] )
114
+
115
+ manager. syncMessages {
116
+ syncMessagesExpectation. fulfill ( )
117
+ }
118
+
119
+ wait ( for: [ syncMessagesExpectation] , timeout: 2 )
120
+
121
+ manager. reset ( )
122
+
123
+ XCTAssertEqual ( manager. getMessages ( ) . count, 0 )
124
+ }
125
+
87
126
func testSyncMessagesFailedDueToInvalidAPIKey( ) {
88
127
let condition = expectation ( description: " syncMessages should notify of disabled messaging due to invalid API Key " )
89
128
90
129
let mockApiClient = MockApiClient ( )
91
130
mockApiClient. setInvalidAPIKey ( )
92
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
131
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
132
+ urlDelegate: nil ,
133
+ urlOpener: MockUrlOpener ( ) ,
134
+ allowedProtocols: [ ] )
93
135
94
136
let view = ViewWithUpdateDelegate (
95
137
onMessagesUpdatedCallback: nil ,
@@ -108,7 +150,10 @@ final class EmbeddedManagerTests: XCTestCase {
108
150
// notify multiple delegates
109
151
func testManagerNotifiesMultipleDelegates( ) {
110
152
let mockApiClient = MockApiClient ( )
111
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
153
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
154
+ urlDelegate: nil ,
155
+ urlOpener: MockUrlOpener ( ) ,
156
+ allowedProtocols: [ ] )
112
157
113
158
var delegate1Called = false
114
159
var delegate2Called = false
@@ -137,7 +182,10 @@ final class EmbeddedManagerTests: XCTestCase {
137
182
// add and remove listeners
138
183
func testManagerCorrectlyAddsAndRemovesListeners( ) {
139
184
let mockApiClient = MockApiClient ( )
140
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
185
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
186
+ urlDelegate: nil ,
187
+ urlOpener: MockUrlOpener ( ) ,
188
+ allowedProtocols: [ ] )
141
189
142
190
var delegateCalled = false
143
191
@@ -169,7 +217,11 @@ final class EmbeddedManagerTests: XCTestCase {
169
217
// init/deinit
170
218
func testManagerInitializationAndDeinitialization( ) {
171
219
let deinitExpectation = expectation ( description: " Manager should deinitialize " )
172
- var manager : IterableEmbeddedManager ? = IterableEmbeddedManager ( apiClient: MockApiClient ( ) )
220
+ let mockApiClient = MockApiClient ( )
221
+ var manager : IterableEmbeddedManager ? = IterableEmbeddedManager ( apiClient: mockApiClient,
222
+ urlDelegate: nil ,
223
+ urlOpener: MockUrlOpener ( ) ,
224
+ allowedProtocols: [ ] )
173
225
manager? . onDeinit = {
174
226
deinitExpectation. fulfill ( )
175
227
}
@@ -184,7 +236,10 @@ final class EmbeddedManagerTests: XCTestCase {
184
236
let expectation = XCTestExpectation ( description: " onMessagesUpdated called " )
185
237
186
238
let mockApiClient = MockApiClient ( )
187
- let manager = IterableEmbeddedManager ( apiClient: mockApiClient)
239
+ let manager = IterableEmbeddedManager ( apiClient: mockApiClient,
240
+ urlDelegate: nil ,
241
+ urlOpener: MockUrlOpener ( ) ,
242
+ allowedProtocols: [ ] )
188
243
189
244
let mockDelegate = ViewWithUpdateDelegate (
190
245
onMessagesUpdatedCallback: {
@@ -229,6 +284,11 @@ final class EmbeddedManagerTests: XCTestCase {
229
284
}
230
285
}
231
286
287
+ private class MockUrlOpener : NSObject , UrlOpenerProtocol {
288
+ func open( url: URL ) {
289
+ }
290
+ }
291
+
232
292
private class MockApiClient : BlankApiClient {
233
293
private var newMessages = false
234
294
private var invalidApiKey = false
0 commit comments