@@ -158,6 +158,61 @@ class OptimizelyClientTests_Init_Sync: XCTestCase {
158
158
let optConfig = try ! optimizely. getOptimizelyConfig ( )
159
159
XCTAssertEqual ( optConfig. revision, kRevisionUpdated)
160
160
}
161
+
162
+ func testInitSync_multi( ) {
163
+ let testSdkKey = OTUtils . randomSdkKey // unique but consistent with registry + start
164
+
165
+ let handler = FakeDatafileHandler ( mode: . successWithData)
166
+ HandlerRegistryService . shared. registerBinding ( binder: Binder ( service: OPTDatafileHandler . self) . sdkKey ( key: testSdkKey) . using ( instance: handler) . to ( factory: FakeDatafileHandler . init) . reInitializeStrategy ( strategy: . reUse) . singetlon ( ) )
167
+
168
+ let optimizely = OptimizelyClient ( sdkKey: testSdkKey,
169
+ periodicDownloadInterval: 10 )
170
+
171
+ try ! optimizely. start ( datafile: datafile,
172
+ doUpdateConfigOnNewDatafile: false )
173
+
174
+ try ! optimizely. start ( datafile: datafile,
175
+ doUpdateConfigOnNewDatafile: false )
176
+
177
+ try ! optimizely. start ( datafile: datafile,
178
+ doUpdateConfigOnNewDatafile: false )
179
+
180
+ let optConfig = try ! optimizely. getOptimizelyConfig ( )
181
+ XCTAssertEqual ( optConfig. revision, kRevisionUpdated)
182
+ }
183
+
184
+ func testInitSync_asnync( ) {
185
+ let testSdkKey = OTUtils . randomSdkKey // unique but consistent with registry + start
186
+
187
+ let handler = FakeDatafileHandler ( mode: . successWithData)
188
+ HandlerRegistryService . shared. registerBinding ( binder: Binder ( service: OPTDatafileHandler . self) . sdkKey ( key: testSdkKey) . using ( instance: handler) . to ( factory: FakeDatafileHandler . init) . reInitializeStrategy ( strategy: . reUse) . singetlon ( ) )
189
+
190
+ let optimizely = OptimizelyClient ( sdkKey: testSdkKey,
191
+ periodicDownloadInterval: 10 )
192
+
193
+ try ! optimizely. start ( datafile: datafile,
194
+ doUpdateConfigOnNewDatafile: false )
195
+
196
+ let exp = expectation ( description: " x " )
197
+ optimizely. start { result in
198
+ if case . success = result {
199
+ XCTAssert ( true )
200
+ } else {
201
+ XCTAssert ( false )
202
+ }
203
+ exp. fulfill ( )
204
+ }
205
+
206
+ wait ( for: [ exp] , timeout: 10 )
207
+
208
+ let enabled = optimizely. isFeatureEnabled ( featureKey: " no_key " , userId: " userId " )
209
+
210
+ XCTAssertEqual ( enabled, false )
211
+
212
+ let optConfig = try ! optimizely. getOptimizelyConfig ( )
213
+ XCTAssertEqual ( optConfig. revision, kRevisionUpdated)
214
+ }
215
+
161
216
}
162
217
163
218
extension OptimizelyClientTests_Init_Sync {
0 commit comments