@@ -20,6 +20,7 @@ import android.content.Context
2020import android.media.AudioManager
2121import io.getstream.video.android.core.Call
2222import io.getstream.video.android.core.CallState
23+ import io.getstream.video.android.core.IncomingRingtoneOwner
2324import io.getstream.video.android.core.RingingState
2425import io.getstream.video.android.core.StreamVideoClient
2526import io.getstream.video.android.core.model.RejectReason
@@ -63,6 +64,8 @@ class CallServiceRingingStateObserverTest {
6364
6465 private val ringingStateFlow =
6566 MutableStateFlow <RingingState >(RingingState .Idle )
67+ private val incomingRingtoneOwnerFlow =
68+ MutableStateFlow <IncomingRingtoneOwner >(IncomingRingtoneOwner .Legacy )
6669
6770 private val onStopServiceInvoked = mutableListOf<Unit >()
6871
@@ -75,6 +78,7 @@ class CallServiceRingingStateObserverTest {
7578
7679 callState = mockk {
7780 every { this @mockk.ringingState } returns ringingStateFlow
81+ every { this @mockk.incomingRingtoneOwner } returns incomingRingtoneOwnerFlow
7882 }
7983
8084 call = mockk {
@@ -123,28 +127,41 @@ class CallServiceRingingStateObserverTest {
123127 }
124128
125129 @Test
126- fun `incoming not accepted plays sound and vibrates` () = runTest {
130+ fun `legacy incoming call not accepted plays sound and vibrates` () = runTest {
127131 observer.observe { onStopServiceInvoked.add(Unit ) }
128- advanceUntilIdle()
129132
130133 ringingStateFlow.value = RingingState .Incoming (acceptedByMe = false )
131134 advanceUntilIdle()
132- advanceTimeBy( 100L )
133- verify {
135+
136+ verify(exactly = 1 ) {
134137 soundPlayer.vibrate(any())
135138 soundPlayer.playCallSound(any(), true )
136139 }
137140 }
138141
139142 @Test
140- fun `incoming accepted stops sound` () = runTest {
143+ fun `notification owned incoming call does not play service ringtone` () = runTest {
144+ incomingRingtoneOwnerFlow.value = IncomingRingtoneOwner .Notification
145+
141146 observer.observe { }
147+
148+ ringingStateFlow.value = RingingState .Incoming (acceptedByMe = false )
142149 advanceUntilIdle()
143150
151+ verify(exactly = 0 ) {
152+ soundPlayer.vibrate(any())
153+ soundPlayer.playCallSound(any(), any())
154+ }
155+ }
156+
157+ @Test
158+ fun `legacy incoming call accepted stops sound` () = runTest {
159+ observer.observe { }
160+
144161 ringingStateFlow.value = RingingState .Incoming (acceptedByMe = true )
145162 advanceUntilIdle()
146- advanceTimeBy( 100L )
147- verify { soundPlayer.stopCallSound() }
163+
164+ verify(exactly = 1 ) { soundPlayer.stopCallSound() }
148165 }
149166
150167 @Test
0 commit comments