davidliu
Committed by GitHub

add test for queued response (#217)

@@ -22,6 +22,8 @@ import org.mockito.Mock @@ -22,6 +22,8 @@ import org.mockito.Mock
22 import org.mockito.Mockito 22 import org.mockito.Mockito
23 import org.mockito.kotlin.any 23 import org.mockito.kotlin.any
24 import org.mockito.kotlin.argThat 24 import org.mockito.kotlin.argThat
  25 +import org.mockito.kotlin.inOrder
  26 +import org.mockito.kotlin.times
25 import org.webrtc.SessionDescription 27 import org.webrtc.SessionDescription
26 28
27 @ExperimentalCoroutinesApi 29 @ExperimentalCoroutinesApi
@@ -157,6 +159,29 @@ class SignalClientTest : BaseTest() { @@ -157,6 +159,29 @@ class SignalClientTest : BaseTest() {
157 .onClose(any(), any()) 159 .onClose(any(), any())
158 } 160 }
159 161
  162 + /**
  163 + * Ensure responses that come in before [SignalClient.onReadyForResponses] are queued.
  164 + */
  165 + @Test
  166 + fun queuedResponses() = runTest {
  167 +
  168 + val inOrder = inOrder(listener)
  169 + val job = async {
  170 + client.join(EXAMPLE_URL, "")
  171 + }
  172 + connectWebsocketAndJoin()
  173 + job.await()
  174 +
  175 + client.onMessage(wsFactory.ws, OFFER.toOkioByteString())
  176 + client.onMessage(wsFactory.ws, ROOM_UPDATE.toOkioByteString())
  177 + client.onMessage(wsFactory.ws, ROOM_UPDATE.toOkioByteString())
  178 +
  179 + client.onReadyForResponses()
  180 +
  181 + inOrder.verify(listener).onOffer(any())
  182 + inOrder.verify(listener, times(2)).onRoomUpdate(any())
  183 + }
  184 +
160 @Test 185 @Test
161 fun sendRequest() = runTest { 186 fun sendRequest() = runTest {
162 val job = async { client.join(EXAMPLE_URL, "") } 187 val job = async { client.join(EXAMPLE_URL, "") }