@@ -4,7 +4,6 @@ import OpenFeature
44import XCTest
55
66final class ProviderEventTests : XCTestCase {
7-
87 func testObservingProviderEventInitialization( ) {
98 let mockEventHandler = EventHandler ( )
109 let provider = MockProvider (
@@ -15,7 +14,9 @@ final class ProviderEventTests: XCTestCase {
1514 let api = OpenFeatureAPI ( )
1615 api. setProvider ( provider: provider)
1716 let expectation = XCTestExpectation ( description: " Error " )
18- api. observe ( ) . sink { event in
17+ api
18+ . observe ( )
19+ . sink { event in
1920 switch event {
2021 case . error( let details) :
2122 if let details {
@@ -33,7 +34,7 @@ final class ProviderEventTests: XCTestCase {
3334 wait ( for: [ expectation] , timeout: 5 )
3435 cancellables. removeAll ( )
3536 }
36-
37+
3738 func testObservingProviderEventsWithDetails( ) {
3839 let mockEventHandler = EventHandler ( )
3940 let provider = MockProvider (
@@ -44,7 +45,9 @@ final class ProviderEventTests: XCTestCase {
4445 let api = OpenFeatureAPI ( )
4546 api. setProvider ( provider: provider)
4647 let readyExpectation = XCTestExpectation ( description: " Ready " )
47- api. observe ( ) . sink { event in
48+ api
49+ . observe ( )
50+ . sink { event in
4851 switch event {
4952 case . ready:
5053 readyExpectation. fulfill ( )
@@ -55,24 +58,27 @@ final class ProviderEventTests: XCTestCase {
5558 . store ( in: & cancellables)
5659 api. setProvider ( provider: provider)
5760 wait ( for: [ readyExpectation] , timeout: 5 )
58-
61+
5962 let eventsExpectation = XCTestExpectation ( description: " Events " )
6063 var receivedEvents : [ ProviderEvent ] = [ ]
6164 let mockEvents = [ mockReady]
62- api. observe ( ) . sink { event in
65+ api
66+ . observe ( )
67+ . sink { event in
6368 if let event {
6469 receivedEvents. append ( event)
6570 }
6671 receivedEvents. count == mockEvents. count ? eventsExpectation. fulfill ( ) : nil
67- } . store ( in: & cancellables)
72+ }
73+ . store ( in: & cancellables)
6874 mockEvents. forEach { event in
6975 mockEventHandler. send ( event)
7076 }
7177 wait ( for: [ eventsExpectation] , timeout: 5 )
7278 XCTAssertEqual ( receivedEvents, mockEvents)
7379 cancellables. removeAll ( )
7480 }
75-
81+
7682 func testProviderEventDetails( ) throws {
7783 let mockFlags = [ " Flag1 " , " Flag2 " ]
7884 let mockMessage = " Mock Message "
@@ -81,15 +87,15 @@ final class ProviderEventTests: XCTestCase {
8187 " Bool " : . boolean( true ) ,
8288 " Int " : . integer( 42 ) ,
8389 " Double " : . double( 10.5 ) ,
84- " String " : . string( " Hello World " )
90+ " String " : . string( " Hello World " ) ,
8591 ]
8692 let eventDetails = ProviderEventDetails (
8793 flagsChanged: mockFlags,
8894 message: mockMessage,
8995 errorCode: mockError,
9096 eventMetadata: mockMetadata
9197 )
92-
98+
9399 let event = ProviderEvent . configurationChanged ( eventDetails)
94100 switch event {
95101 case . configurationChanged( let details) :
@@ -101,54 +107,63 @@ final class ProviderEventTests: XCTestCase {
101107 // Validate metadata types and values
102108 XCTAssertTrue ( mockMetadata [ " Bool " ] ? . asBoolean ( ) == true )
103109 XCTAssertTrue ( mockMetadata [ " Int " ] ? . asInteger ( ) == 42 )
104- XCTAssertTrue ( mockMetadata [ " Double " ] ? . asDouble ( ) == 10.5 )
110+ XCTAssertTrue ( mockMetadata [ " Double " ] ? . asDouble ( ) == 10.5 )
105111 XCTAssertTrue ( mockMetadata [ " String " ] ? . asString ( ) == " Hello World " )
106112 default :
107113 XCTFail ( " Unexpected event type " )
108114 }
109115 }
110-
111- // MARK: - Helpers for Provider Events
112- var mockReady : ProviderEvent = . ready( ProviderEventDetails (
113- flagsChanged: nil ,
114- message: nil ,
115- errorCode: nil ,
116- eventMetadata: [ : ]
117- ) )
118- var mockError : ProviderEvent = . error( ProviderEventDetails (
119- flagsChanged: nil ,
120- message: " general error message " ,
121- errorCode: . general,
122- eventMetadata: [ : ]
123- ) )
124- var mockConfigurationChanged : ProviderEvent = . configurationChanged( ProviderEventDetails (
125- flagsChanged: [ " Flag1 " , " Flag2 " ] ,
126- message: nil ,
127- errorCode: nil ,
128- eventMetadata: [
129- " Mock String " : . string( " some details " ) ,
130- " Mock Bool " : . boolean( true ) ,
131- " Mock Double " : . double( 10 ) ,
132- " Mock Integer " : . integer( 100 )
133- ]
134- ) )
135- var mockStale : ProviderEvent = . stale( ProviderEventDetails (
136- flagsChanged: nil ,
137- message: nil ,
138- errorCode: nil ,
139- eventMetadata: [ : ]
140- ) )
141- var mockReconciling : ProviderEvent = . reconciling( ProviderEventDetails (
142- flagsChanged: nil ,
143- message: nil ,
144- errorCode: nil ,
145- eventMetadata: [ : ]
146- ) )
147- var mockContextChanged : ProviderEvent = . contextChanged( ProviderEventDetails (
148- flagsChanged: nil ,
149- message: nil ,
150- errorCode: nil ,
151- eventMetadata: [ : ]
152- ) )
153116
117+ // MARK: - Helpers for Provider Events
118+ var mockReady : ProviderEvent = . ready(
119+ ProviderEventDetails (
120+ flagsChanged: nil ,
121+ message: nil ,
122+ errorCode: nil ,
123+ eventMetadata: [ : ]
124+ ) )
125+ var mockError : ProviderEvent = . error(
126+ ProviderEventDetails (
127+ flagsChanged: nil ,
128+ message: " general error message " ,
129+ errorCode: . general,
130+ eventMetadata: [ : ]
131+ ) )
132+ var mockConfigurationChanged : ProviderEvent = . configurationChanged(
133+ ProviderEventDetails (
134+ flagsChanged: [ " Flag1 " , " Flag2 " ] ,
135+ message: nil ,
136+ errorCode: nil ,
137+ eventMetadata: [
138+ " Mock String " : . string( " some details " ) ,
139+ " Mock Bool " : . boolean( true ) ,
140+ " Mock Double " : . double( 10 ) ,
141+ " Mock Integer " : . integer( 100 ) ,
142+ ]
143+ )
144+ )
145+ var mockStale : ProviderEvent = . stale(
146+ ProviderEventDetails (
147+ flagsChanged: nil ,
148+ message: nil ,
149+ errorCode: nil ,
150+ eventMetadata: [ : ]
151+ )
152+ )
153+ var mockReconciling : ProviderEvent = . reconciling(
154+ ProviderEventDetails (
155+ flagsChanged: nil ,
156+ message: nil ,
157+ errorCode: nil ,
158+ eventMetadata: [ : ]
159+ )
160+ )
161+ var mockContextChanged : ProviderEvent = . contextChanged(
162+ ProviderEventDetails (
163+ flagsChanged: [ " Flag1 " , " Flag2 " ] ,
164+ message: nil ,
165+ errorCode: nil ,
166+ eventMetadata: [ : ]
167+ )
168+ )
154169}
0 commit comments