@Test public void shouldHandleSlowResponsesFromServer() throws InterruptedException { // Given: givenResponsesDelayedBy(Duration.ofSeconds(3)); final RestResponse<KsqlRestClient.QueryStream> queryResponse = ksqlRestClient.makeQueryRequest("Select *"); final ReceiverThread receiver = new ReceiverThread(queryResponse); final MockStreamedQueryResource.TestStreamWriter writer = getResponseWriter(); // When: writer.enq("hello"); writer.enq("world"); writer.enq("{\"row\":null,\"errorMessage\":null,\"finalMessage\":\"Limit Reached\"}"); writer.finished(); // Then: assertThat(receiver.getRows(), contains( StreamedRow.row(new GenericRow(ImmutableList.of("hello"))), StreamedRow.row(new GenericRow(ImmutableList.of("world"))), StreamedRow.finalMessage("Limit Reached"))); }
@Test public void testStreamRowFromServer() throws InterruptedException { // Given: final RestResponse<KsqlRestClient.QueryStream> queryResponse = ksqlRestClient.makeQueryRequest("Select *"); final ReceiverThread receiver = new ReceiverThread(queryResponse); final MockStreamedQueryResource.TestStreamWriter writer = getResponseWriter(); // When: writer.enq("hello"); writer.enq("world"); writer.enq("{\"row\":null,\"errorMessage\":null,\"finalMessage\":\"Limit Reached\"}"); writer.finished(); // Then: assertThat(receiver.getRows(), contains( StreamedRow.row(new GenericRow(ImmutableList.of("hello"))), StreamedRow.row(new GenericRow(ImmutableList.of("world"))), StreamedRow.finalMessage("Limit Reached"))); }