private void givenServerWillReturn(final Object entity) { givenServerWillReturn(Status.OK.getStatusCode(), Optional.of(entity)); }
@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"))); }
private void givenServerWillReturn(final Status statusCode) { givenServerWillReturn(statusCode.getStatusCode(), Optional.empty()); }
private void givenServerWillReturn(final KsqlErrorMessage errorMessage) { final int statusCode = Errors.toStatusCode(errorMessage.getErrorCode()); givenServerWillReturn(statusCode, Optional.of(errorMessage)); }
@Test public void shouldHandleSuccessOnPostRequests() { // Given: final KsqlEntityList expectedEntity = new KsqlEntityList(); givenServerWillReturn(expectedEntity); // When: final RestResponse<KsqlEntityList> response = ksqlRestClient.makeKsqlRequest("foo"); // Then: assertThat(response.get(), is(expectedEntity)); }
@Test public void shouldHandleSuccessOnGetRequests() { // Given: final ServerInfo expectedEntity = new ServerInfo("1", "cid", "sid"); givenServerWillReturn(expectedEntity); // When: final RestResponse<ServerInfo> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.get(), is(expectedEntity)); }
@Test public void shouldHandleErrorMessageOnPostRequests() { // Given: givenServerWillReturn(new KsqlErrorMessage(12300, "ouch", ImmutableList.of("s1", "s2"))); // When: final RestResponse<?> response = ksqlRestClient.makeKsqlRequest("whateva"); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(12300)); assertThat(response.getErrorMessage().getMessage(), is("ouch")); assertThat(response.getErrorMessage().getStackTrace(), is(ImmutableList.of("s1", "s2"))); }
@Test public void shouldHandleErrorMessageOnGetRequests() { // Given: givenServerWillReturn(new KsqlErrorMessage(12300, "ouch", ImmutableList.of("s1", "s2"))); // When: final RestResponse<?> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(12300)); assertThat(response.getErrorMessage().getMessage(), is("ouch")); assertThat(response.getErrorMessage().getStackTrace(), is(ImmutableList.of("s1", "s2"))); }
@Test public void shouldHandleArbitraryErrorsOnPostRequests() { // Given: givenServerWillReturn(Status.EXPECTATION_FAILED); // When: final RestResponse<?> response = ksqlRestClient.makeKsqlRequest("whateva"); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.toErrorCode(Status.EXPECTATION_FAILED.getStatusCode()))); assertThat(response.getErrorMessage().getMessage(), is("The server returned an unexpected error.")); }
@Test public void shouldHandleArbitraryErrorsOnGetRequests() { // Given: givenServerWillReturn(Status.EXPECTATION_FAILED); // When: final RestResponse<?> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.toErrorCode(Status.EXPECTATION_FAILED.getStatusCode()))); assertThat(response.getErrorMessage().getMessage(), is("The server returned an unexpected error.")); }
@Test public void shouldHandleNotFoundOnGetRequests() { // Given: givenServerWillReturn(Status.NOT_FOUND); // When: final RestResponse<?> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(404)); assertThat(response.getErrorMessage().getMessage(), containsString("Path not found. Path='/info'. " + "Check your ksql http url to make sure you are connecting to a ksql server.")); }
@Test public void shouldHandleUnauthorizedOnGetRequests() { // Given: givenServerWillReturn(Status.UNAUTHORIZED); // When: final RestResponse<?> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.ERROR_CODE_UNAUTHORIZED)); assertThat(response.getErrorMessage().getMessage(), is("Could not authenticate successfully with the supplied credentials.")); }
@Test public void shouldHandleForbiddenOnPostRequests() { // Given: givenServerWillReturn(Status.FORBIDDEN); // When: final RestResponse<?> response = ksqlRestClient.makeKsqlRequest("whateva"); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.ERROR_CODE_FORBIDDEN)); assertThat(response.getErrorMessage().getMessage(), is("You are forbidden from using this cluster.")); }
@Test public void shouldHandleNotFoundOnPostRequests() { // Given: givenServerWillReturn(Status.NOT_FOUND); // When: final RestResponse<?> response = ksqlRestClient.makeKsqlRequest("whateva"); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(404)); assertThat(response.getErrorMessage().getMessage(), containsString("Path not found. Path='ksql'. " + "Check your ksql http url to make sure you are connecting to a ksql server.")); }
@Test public void shouldHandleUnauthorizedOnPostRequests() { // Given: givenServerWillReturn(Status.UNAUTHORIZED); // When: final RestResponse<?> response = ksqlRestClient.makeKsqlRequest("whateva"); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.ERROR_CODE_UNAUTHORIZED)); assertThat(response.getErrorMessage().getMessage(), is("Could not authenticate successfully with the supplied credentials.")); }
@Test public void shouldHandleForbiddendOnGetRequests() { // Given: givenServerWillReturn(Status.FORBIDDEN); // When: final RestResponse<?> response = ksqlRestClient.getServerInfo(); // Then: assertThat(response.getErrorMessage().getErrorCode(), is(Errors.ERROR_CODE_FORBIDDEN)); assertThat(response.getErrorMessage().getMessage(), is("You are forbidden from using this cluster.")); }