@@ -70,7 +70,7 @@ public async Task API_Level_Event_Handlers_Should_Be_Registered()
7070 Api . Instance . AddHandler ( ProviderEventTypes . ProviderStale , eventHandler ) ;
7171
7272 var testProvider = new TestProvider ( ) ;
73- await Api . Instance . SetProvider ( testProvider ) ;
73+ await Api . Instance . SetProviderAsync ( testProvider ) ;
7474
7575 testProvider . SendEvent ( ProviderEventTypes . ProviderConfigurationChanged ) ;
7676 testProvider . SendEvent ( ProviderEventTypes . ProviderError ) ;
@@ -117,7 +117,33 @@ public async Task API_Level_Event_Handlers_Should_Be_Informed_About_Ready_State_
117117 var eventHandler = Substitute . For < EventHandlerDelegate > ( ) ;
118118
119119 var testProvider = new TestProvider ( ) ;
120- await Api . Instance . SetProvider ( testProvider ) ;
120+ await Api . Instance . SetProviderAsync ( testProvider ) ;
121+
122+ Api . Instance . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
123+
124+ await Utils . AssertUntilAsync ( _ => eventHandler
125+ . Received ( )
126+ . Invoke (
127+ Arg . Is < ProviderEventPayload > (
128+ payload => payload . ProviderName == testProvider . GetMetadata ( ) . Name && payload . Type == ProviderEventTypes . ProviderReady
129+ ) ) ) ;
130+ }
131+
132+ [ Fact ]
133+ [ Specification ( "5.1.2" , "When a `provider` signals the occurrence of a particular `event`, the associated `client` and `API` event handlers MUST run." ) ]
134+ [ Specification ( "5.2.2" , "The `API` MUST provide a function for associating `handler functions` with a particular `provider event type`." ) ]
135+ [ Specification ( "5.2.3" , "The `event details` MUST contain the `provider name` associated with the event." ) ]
136+ [ Specification ( "5.2.4" , "The `handler function` MUST accept a `event details` parameter." ) ]
137+ [ Specification ( "5.3.1" , "If the provider's `initialize` function terminates normally, `PROVIDER_READY` handlers MUST run." ) ]
138+ [ Specification ( "5.3.3" , "Handlers attached after the provider is already in the associated state, MUST run immediately." ) ]
139+ public async Task API_Level_Event_Handlers_Should_Be_Informed_About_Ready_State_After_Registering_Provider_Ready_Sync ( )
140+ {
141+ var eventHandler = Substitute . For < EventHandlerDelegate > ( ) ;
142+
143+ var testProvider = new TestProvider ( ) ;
144+ #pragma warning disable CS0618 // Type or member is obsolete
145+ Api . Instance . SetProvider ( testProvider ) ;
146+ #pragma warning restore CS0618 // Type or member is obsolete
121147
122148 Api . Instance . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
123149
@@ -141,7 +167,7 @@ public async Task API_Level_Event_Handlers_Should_Be_Informed_About_Error_State_
141167 var eventHandler = Substitute . For < EventHandlerDelegate > ( ) ;
142168
143169 var testProvider = new TestProvider ( ) ;
144- await Api . Instance . SetProvider ( testProvider ) ;
170+ await Api . Instance . SetProviderAsync ( testProvider ) ;
145171
146172 testProvider . SetStatus ( ProviderStatus . Error ) ;
147173
@@ -166,7 +192,7 @@ public async Task API_Level_Event_Handlers_Should_Be_Informed_About_Stale_State_
166192 var eventHandler = Substitute . For < EventHandlerDelegate > ( ) ;
167193
168194 var testProvider = new TestProvider ( ) ;
169- await Api . Instance . SetProvider ( testProvider ) ;
195+ await Api . Instance . SetProviderAsync ( testProvider ) ;
170196
171197 testProvider . SetStatus ( ProviderStatus . Stale ) ;
172198
@@ -194,12 +220,12 @@ public async Task API_Level_Event_Handlers_Should_Be_Exchangeable()
194220 Api . Instance . AddHandler ( ProviderEventTypes . ProviderConfigurationChanged , eventHandler ) ;
195221
196222 var testProvider = new TestProvider ( ) ;
197- await Api . Instance . SetProvider ( testProvider ) ;
223+ await Api . Instance . SetProviderAsync ( testProvider ) ;
198224
199225 testProvider . SendEvent ( ProviderEventTypes . ProviderConfigurationChanged ) ;
200226
201227 var newTestProvider = new TestProvider ( ) ;
202- await Api . Instance . SetProvider ( newTestProvider ) ;
228+ await Api . Instance . SetProviderAsync ( newTestProvider ) ;
203229
204230 newTestProvider . SendEvent ( ProviderEventTypes . ProviderConfigurationChanged ) ;
205231
@@ -223,13 +249,13 @@ public async Task API_Level_Event_Handlers_Should_Be_Removable()
223249 Api . Instance . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
224250
225251 var testProvider = new TestProvider ( ) ;
226- await Api . Instance . SetProvider ( testProvider ) ;
252+ await Api . Instance . SetProviderAsync ( testProvider ) ;
227253
228254 Thread . Sleep ( 1000 ) ;
229255 Api . Instance . RemoveHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
230256
231257 var newTestProvider = new TestProvider ( ) ;
232- await Api . Instance . SetProvider ( newTestProvider ) ;
258+ await Api . Instance . SetProviderAsync ( newTestProvider ) ;
233259
234260 eventHandler . Received ( 1 ) . Invoke ( Arg . Is < ProviderEventPayload > ( payload => payload . ProviderName == testProvider . GetMetadata ( ) . Name ) ) ;
235261 }
@@ -254,7 +280,7 @@ public async Task API_Level_Event_Handlers_Should_Be_Executed_When_Other_Handler
254280 Api . Instance . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
255281
256282 var testProvider = new TestProvider ( fixture . Create < string > ( ) ) ;
257- await Api . Instance . SetProvider ( testProvider ) ;
283+ await Api . Instance . SetProviderAsync ( testProvider ) ;
258284
259285 await Utils . AssertUntilAsync (
260286 _ => failingEventHandler . Received ( ) . Invoke ( Arg . Is < ProviderEventPayload > ( payload => payload . ProviderName == testProvider . GetMetadata ( ) . Name ) )
@@ -277,7 +303,7 @@ public async Task Client_Level_Event_Handlers_Should_Be_Registered()
277303 var myClient = Api . Instance . GetClient ( fixture . Create < string > ( ) ) ;
278304
279305 var testProvider = new TestProvider ( ) ;
280- await Api . Instance . SetProvider ( myClient . GetMetadata ( ) . Name , testProvider ) ;
306+ await Api . Instance . SetProviderAsync ( myClient . GetMetadata ( ) . Name , testProvider ) ;
281307
282308 myClient . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
283309
@@ -306,7 +332,7 @@ public async Task Client_Level_Event_Handlers_Should_Be_Executed_When_Other_Hand
306332 myClient . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
307333
308334 var testProvider = new TestProvider ( ) ;
309- await Api . Instance . SetProvider ( myClient . GetMetadata ( ) . Name , testProvider ) ;
335+ await Api . Instance . SetProviderAsync ( myClient . GetMetadata ( ) . Name , testProvider ) ;
310336
311337 await Utils . AssertUntilAsync (
312338 _ => failingEventHandler . Received ( ) . Invoke ( Arg . Is < ProviderEventPayload > ( payload => payload . ProviderName == testProvider . GetMetadata ( ) . Name ) )
@@ -335,9 +361,9 @@ public async Task Client_Level_Event_Handlers_Should_Be_Registered_To_Default_Pr
335361 var clientProvider = new TestProvider ( fixture . Create < string > ( ) ) ;
336362
337363 // set the default provider on API level, but not specifically to the client
338- await Api . Instance . SetProvider ( apiProvider ) ;
364+ await Api . Instance . SetProviderAsync ( apiProvider ) ;
339365 // set the other provider specifically for the client
340- await Api . Instance . SetProvider ( myClientWithBoundProvider . GetMetadata ( ) . Name , clientProvider ) ;
366+ await Api . Instance . SetProviderAsync ( myClientWithBoundProvider . GetMetadata ( ) . Name , clientProvider ) ;
341367
342368 myClientWithNoBoundProvider . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
343369 myClientWithBoundProvider . AddHandler ( ProviderEventTypes . ProviderReady , clientEventHandler ) ;
@@ -367,7 +393,7 @@ public async Task Client_Level_Event_Handlers_Should_Be_Receive_Events_From_Name
367393 var clientProvider = new TestProvider ( fixture . Create < string > ( ) ) ;
368394
369395 // set the default provider
370- await Api . Instance . SetProvider ( defaultProvider ) ;
396+ await Api . Instance . SetProviderAsync ( defaultProvider ) ;
371397
372398 client . AddHandler ( ProviderEventTypes . ProviderConfigurationChanged , clientEventHandler ) ;
373399
@@ -379,7 +405,7 @@ await Utils.AssertUntilAsync(
379405 ) ;
380406
381407 // set the other provider specifically for the client
382- await Api . Instance . SetProvider ( client . GetMetadata ( ) . Name , clientProvider ) ;
408+ await Api . Instance . SetProviderAsync ( client . GetMetadata ( ) . Name , clientProvider ) ;
383409
384410 // now, send another event for the default handler
385411 defaultProvider . SendEvent ( ProviderEventTypes . ProviderConfigurationChanged ) ;
@@ -410,7 +436,7 @@ public async Task Client_Level_Event_Handlers_Should_Be_Informed_About_Ready_Sta
410436 var myClient = Api . Instance . GetClient ( fixture . Create < string > ( ) ) ;
411437
412438 var testProvider = new TestProvider ( ) ;
413- await Api . Instance . SetProvider ( myClient . GetMetadata ( ) . Name , testProvider ) ;
439+ await Api . Instance . SetProviderAsync ( myClient . GetMetadata ( ) . Name , testProvider ) ;
414440
415441 // add the event handler after the provider has already transitioned into the ready state
416442 myClient . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
@@ -435,7 +461,7 @@ public async Task Client_Level_Event_Handlers_Should_Be_Removable()
435461 myClient . AddHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ;
436462
437463 var testProvider = new TestProvider ( ) ;
438- await Api . Instance . SetProvider ( myClient . GetMetadata ( ) . Name , testProvider ) ;
464+ await Api . Instance . SetProviderAsync ( myClient . GetMetadata ( ) . Name , testProvider ) ;
439465
440466 // wait for the first event to be received
441467 await Utils . AssertUntilAsync ( _ => myClient . RemoveHandler ( ProviderEventTypes . ProviderReady , eventHandler ) ) ;
0 commit comments