正在显示
1 个修改的文件
包含
25 行增加
和
0 行删除
| @@ -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, "") } |
-
请 注册 或 登录 后发表评论