@@ -120,7 +120,7 @@ final class MultiProviderTests: XCTestCase {
120
120
XCTAssertTrue ( result. errorCode == . flagNotFound)
121
121
}
122
122
123
- func testEvaluationWithMultipleProvidersAndFirstMatchStrategy_Throws ( ) throws {
123
+ func testEvaluationWithMultipleProvidersAndFirstMatchStrategy_HandlesOpenFeatureError ( ) throws {
124
124
let mockKey = " test-key "
125
125
let mockProvider1 = MockProvider (
126
126
initialize: { _ in } ,
@@ -138,12 +138,39 @@ final class MultiProviderTests: XCTestCase {
138
138
providers: [ mockProvider1, mockProvider2] ,
139
139
strategy: FirstMatchStrategy ( )
140
140
)
141
+ let defaultValue = false
142
+ let result = try multiProvider. getBooleanEvaluation (
143
+ key: mockKey, defaultValue: defaultValue, context: MutableContext ( ) )
144
+ XCTAssertEqual ( result. value, false )
145
+ XCTAssertNotNil ( result. errorCode)
146
+ }
141
147
148
+ func testEvaluationWithMultipleProvidersAndFirstMatchStrategy_Throws( ) throws {
149
+ let mockKey = " test-key "
150
+ let mockError = MockProvider . MockProviderError. message ( " test non-open feature error " )
151
+ let mockProvider1 = MockProvider (
152
+ initialize: { _ in } ,
153
+ getBooleanEvaluation: { _, defaultValue, _ in
154
+ return ProviderEvaluation ( value: defaultValue, errorCode: . flagNotFound)
155
+ }
156
+ )
157
+ let mockProvider2 = MockProvider (
158
+ initialize: { _ in } ,
159
+ getBooleanEvaluation: { _, _, _ in
160
+ throw mockError
161
+ }
162
+ )
163
+ let multiProvider = MultiProvider (
164
+ providers: [ mockProvider1, mockProvider2] ,
165
+ strategy: FirstMatchStrategy ( )
166
+ )
167
+ let defaultValue = false
142
168
do {
143
- _ = try multiProvider. getBooleanEvaluation ( key: mockKey, defaultValue: false , context: MutableContext ( ) )
144
- XCTFail ( " Expected error to be thrown " )
169
+ _ = try multiProvider. getBooleanEvaluation (
170
+ key: mockKey, defaultValue: defaultValue, context: MutableContext ( ) )
171
+ XCTFail ( " Expected to throw " )
145
172
} catch {
146
- XCTAssertEqual ( error as? OpenFeatureError , OpenFeatureError . generalError ( message : " test error " ) )
173
+ XCTAssertTrue ( error is MockProvider . MockProviderError )
147
174
}
148
175
}
149
176
@@ -192,12 +219,11 @@ final class MultiProviderTests: XCTestCase {
192
219
strategy: FirstSuccessfulStrategy ( )
193
220
)
194
221
195
- do {
196
- _ = try multiProvider. getBooleanEvaluation ( key: mockKey, defaultValue: false , context: MutableContext ( ) )
197
- XCTFail ( " Expected error to be thrown " )
198
- } catch {
199
- XCTAssertTrue ( error as? OpenFeatureError == OpenFeatureError . flagNotFoundError ( key: mockKey) )
200
- }
222
+ let defaultValue = false
223
+ let result = try multiProvider. getBooleanEvaluation (
224
+ key: mockKey, defaultValue: defaultValue, context: MutableContext ( ) )
225
+ XCTAssertEqual ( result. errorCode, . flagNotFound)
226
+ XCTAssertEqual ( result. value, defaultValue)
201
227
}
202
228
203
229
func testObserveWithMultipleProviders( ) {
0 commit comments