@@ -196,6 +196,69 @@ class DefaultAudioClientObserverTests: XCTestCase {
196
196
197
197
wait ( for: [ expect] , timeout: defaultTimeout)
198
198
}
199
+
200
+ func testAudioClientStateChanged_ConnectionFailedFromReconnecting( ) {
201
+ given ( audioClientMock. stopSession ( ) ) . willReturn ( 0 )
202
+ DefaultAudioClientController . state = . started
203
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_RECONNECTING,
204
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . ok. rawValue) )
205
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_DISCONNECTED_ABNORMAL,
206
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . audioServerHungup. rawValue) )
207
+ let expect = eventually {
208
+ verify ( mockAudioVideoObserver. audioSessionDidCancelReconnect ( ) ) . wasCalled ( )
209
+ verify ( eventAnalyticsControllerMock. publishEvent ( name: . meetingFailed, attributes: any ( ) ) ) . wasCalled ( )
210
+ verify ( meetingStatsCollectorMock. resetMeetingStats ( ) ) . wasCalled ( )
211
+ }
212
+
213
+ wait ( for: [ expect] , timeout: defaultTimeout)
214
+ }
215
+
216
+ func testAudioClientStateChanged_FinishDisconnectingFromConnecting( ) {
217
+ given ( audioClientMock. stopSession ( ) ) . willReturn ( 0 )
218
+ DefaultAudioClientController . state = . started
219
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_CONNECTING,
220
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . ok. rawValue) )
221
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_SERVER_HUNGUP,
222
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . audioServerHungup. rawValue) )
223
+ let expect = eventually {
224
+ verify ( eventAnalyticsControllerMock. publishEvent ( name: . meetingEnded, attributes: any ( ) ) ) . wasCalled ( )
225
+ verify ( mockAudioVideoObserver. audioSessionDidStopWithStatus ( sessionStatus: any ( ) ) ) . wasCalled ( )
226
+ }
227
+
228
+ wait ( for: [ expect] , timeout: defaultTimeout)
229
+ }
230
+
231
+ func testAudioClientStateChanged_FinishDisconnectingFromConnected( ) {
232
+ given ( audioClientMock. stopSession ( ) ) . willReturn ( 0 )
233
+ DefaultAudioClientController . state = . started
234
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_CONNECTED,
235
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . ok. rawValue) )
236
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_SERVER_HUNGUP,
237
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . audioServerHungup. rawValue) )
238
+ let expect = eventually {
239
+ verify ( mockAudioVideoObserver. audioSessionDidStopWithStatus ( sessionStatus: any ( ) ) ) . wasCalled ( )
240
+ verify ( eventAnalyticsControllerMock. publishEvent ( name: . meetingEnded, attributes: any ( ) ) ) . wasCalled ( )
241
+ verify ( meetingStatsCollectorMock. resetMeetingStats ( ) ) . wasCalled ( )
242
+ }
243
+
244
+ wait ( for: [ expect] , timeout: defaultTimeout)
245
+ }
246
+
247
+ func testAudioClientStateChanged_FinishDisconnectingFromReconnecting( ) {
248
+ given ( audioClientMock. stopSession ( ) ) . willReturn ( 0 )
249
+ DefaultAudioClientController . state = . started
250
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_RECONNECTING,
251
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . ok. rawValue) )
252
+ defaultAudioClientObserver. audioClientStateChanged ( AUDIO_CLIENT_STATE_SERVER_HUNGUP,
253
+ status: audio_client_status_t. init ( MeetingSessionStatusCode . audioServerHungup. rawValue) )
254
+ let expect = eventually {
255
+ verify ( mockAudioVideoObserver. audioSessionDidCancelReconnect ( ) ) . wasCalled ( )
256
+ verify ( eventAnalyticsControllerMock. publishEvent ( name: . meetingEnded, attributes: any ( ) ) ) . wasCalled ( )
257
+ verify ( meetingStatsCollectorMock. resetMeetingStats ( ) ) . wasCalled ( )
258
+ }
259
+
260
+ wait ( for: [ expect] , timeout: defaultTimeout)
261
+ }
199
262
200
263
func testAudioClientStateChanged_NotifiesOfInputDeviceFailure( ) {
201
264
given ( audioClientMock. stopSession ( ) ) . willReturn ( 0 )
0 commit comments