@Test public void testServerStarts() { StatusResponseHandler.StatusResponse response = client.execute( prepareGet().setUri(server.resolve("/v1/query")).build(), createStatusResponseHandler()); assertEquals(response.getStatusCode(), OK.getStatusCode()); }
@Test public void testQuotedSpace() throws Exception { URI uri = baseURI.resolve("/road/to/nowhere?query=ab%20cd"); Request request = prepareGet() .setUri(uri) .build(); int statusCode = executeRequest(request, createStatusResponseHandler()).getStatusCode(); assertEquals(statusCode, 200); assertEquals(servlet.getRequestMethod(), "GET"); assertEquals(servlet.getRequestUri(), uri); }
@Test public void testPutMethodWithFileBodyGenerator() throws Exception { byte[] contents = "hello world".getBytes(UTF_8); File testFile = File.createTempFile("test", null); Files.write(testFile.toPath(), contents); URI uri = baseURI.resolve("/road/to/nowhere"); Request request = preparePut() .setUri(uri) .addHeader(CONTENT_TYPE, "x-test") .setBodyGenerator(new FileBodyGenerator(testFile.toPath())) .build(); int statusCode = executeRequest(request, createStatusResponseHandler()).getStatusCode(); assertEquals(statusCode, 200); assertEquals(servlet.getRequestMethod(), "PUT"); assertEquals(servlet.getRequestUri(), uri); assertEquals(servlet.getRequestHeaders(CONTENT_TYPE), ImmutableList.of("x-test")); assertEquals(servlet.getRequestHeaders(CONTENT_LENGTH), ImmutableList.of(String.valueOf(contents.length))); assertEquals(servlet.getRequestBytes(), contents); assertTrue(testFile.delete()); }
@Test public void testKeepAlive() throws Exception { URI uri = URI.create(baseURI.toASCIIString() + "/?remotePort="); Request request = prepareGet() .setUri(uri) .build(); StatusResponse response1 = executeRequest(request, createStatusResponseHandler()); Thread.sleep(1000); StatusResponse response2 = executeRequest(request, createStatusResponseHandler()); Thread.sleep(1000); StatusResponse response3 = executeRequest(request, createStatusResponseHandler()); assertNotNull(response1.getHeader("remotePort")); assertNotNull(response2.getHeader("remotePort")); assertNotNull(response3.getHeader("remotePort")); int port1 = Integer.parseInt(response1.getHeader("remotePort")); int port2 = Integer.parseInt(response2.getHeader("remotePort")); int port3 = Integer.parseInt(response3.getHeader("remotePort")); assertEquals(port2, port1); assertEquals(port3, port1); assertBetweenInclusive(port1, 1024, 65535); }
@Test public void testHttpIsDisabled() throws Exception { config.setHttpEnabled(false); createServer(); server.start(); try (HttpClient client = new JettyHttpClient(new HttpClientConfig().setConnectTimeout(new Duration(2.0, TimeUnit.SECONDS)))) { StatusResponse response = client.execute(prepareGet().setUri(httpServerInfo.getHttpUri().resolve("/")).build(), createStatusResponseHandler()); if (response != null) { // TODO: this is a workaround for a bug in AHC (some race condition) fail("Expected connection refused, got response code: " + response.getStatusCode()); } } catch (RuntimeException e) { assertTrue(e.getCause() instanceof ConnectException, e.getCause().getClass() + " instanceof ConnectException"); } }
private void assertNonOverridableMethod(Request request) throws IOException, ExecutionException, InterruptedException { StatusResponse response = client.execute(request, createStatusResponseHandler()); assertEquals(response.getStatusCode(), Status.BAD_REQUEST.getStatusCode()); assertFalse(resource.postCalled(), "POST"); assertFalse(resource.deleteCalled(), "DELETE"); assertFalse(resource.putCalled(), "PUT"); assertFalse(resource.getCalled(), "GET"); }
public void execute(String query) { Request request = buildQueryRequest(session, query); StatusResponse response = httpClient.execute(request, createStatusResponseHandler()); if (response.getStatusCode() != 200) { throw new RuntimeException("Query failed: [" + response.getStatusCode() + "] " + response.getStatusMessage()); } }
public boolean cancelLeafStage(Duration timeout) { checkState(!isClosed(), "client is closed"); URI uri = current().getPartialCancelUri(); if (uri == null) { return false; } Request request = prepareDelete() .setHeader(USER_AGENT, USER_AGENT_VALUE) .setUri(uri) .build(); HttpResponseFuture<StatusResponse> response = httpClient.executeAsync(request, createStatusResponseHandler()); try { StatusResponse status = response.get(timeout.toMillis(), MILLISECONDS); return familyForStatusCode(status.getStatusCode()) == Family.SUCCESSFUL; } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw Throwables.propagate(e); } catch (ExecutionException e) { throw Throwables.propagate(e.getCause()); } catch (TimeoutException e) { return false; } }
@Nullable public String getHeader(String name) { List<String> values = getHeaders().get(HeaderName.of(name)); return values.isEmpty() ? null : values.get(0); }
private static boolean isOk(StatusResponse response) { return (response.getStatusCode() == HttpStatus.OK.code()) || (response.getStatusCode() == HttpStatus.NO_CONTENT.code()); }
private static boolean isOk(StatusResponse response) { return (response.getStatusCode() == HttpStatus.OK.code()) || (response.getStatusCode() == HttpStatus.NO_CONTENT.code()); }
@Override public StatusResponse handle(Request request, Response response) { return new StatusResponse(response.getStatusCode(), response.getStatusMessage(), response.getHeaders()); }
private static StatusResponse createStatusResponse(Response response) { return new StatusResponse(response.getStatusCode(), response.getStatusMessage(), response.getHeaders()); } }
private static StatusResponse createStatusResponse(Response response) { return new StatusResponse(response.getStatusCode(), response.getStatusMessage(), response.getHeaders()); } }
private static boolean isNotFound(StatusResponse response) { return response.getStatusCode() == HttpStatus.NOT_FOUND.code(); }
private static boolean isGone(StatusResponse response) { return response.getStatusCode() == HttpStatus.GONE.code(); }
private static boolean isGone(StatusResponse response) { return response.getStatusCode() == HttpStatus.GONE.code(); }
private static RuntimeException badResponse(StatusResponse response) { throw new RuntimeException("Request failed with HTTP status " + response.getStatusCode()); }
private static boolean isNotFound(StatusResponse response) { return response.getStatusCode() == HttpStatus.NOT_FOUND.code(); }
private static RuntimeException badResponse(StatusResponse response) { throw new RuntimeException("Request failed with HTTP status " + response.getStatusCode()); }