.withTracing() .withConfigDefaults(config -> { config.setIdleTimeout(new Duration(30, SECONDS)); config.setRequestTimeout(new Duration(10, SECONDS)); }); .withFilter(GenerateTraceTokenRequestFilter.class) .withConfigDefaults(config -> { config.setIdleTimeout(new Duration(30, SECONDS)); config.setRequestTimeout(new Duration(10, SECONDS)); config.setMaxConnectionsPerServer(250);
.withTracing() .withConfigDefaults(config -> { config.setIdleTimeout(new Duration(30, SECONDS)); config.setRequestTimeout(new Duration(10, SECONDS)); }); .withFilter(GenerateTraceTokenRequestFilter.class) .withConfigDefaults(config -> { config.setIdleTimeout(new Duration(30, SECONDS)); config.setRequestTimeout(new Duration(10, SECONDS)); config.setMaxConnectionsPerServer(250);
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testReadTimeout() throws Exception { HttpClientConfig config = createClientConfig() .setIdleTimeout(new Duration(500, MILLISECONDS)); URI uri = URI.create(baseURI.toASCIIString() + "/?sleep=1000"); Request request = prepareGet() .setUri(uri) .build(); executeRequest(config, request, new ExceptionResponseHandler()); }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testReadTimeout() throws Exception { HttpClientConfig config = createClientConfig() .setIdleTimeout(new Duration(500, MILLISECONDS)); URI uri = URI.create(baseURI.toASCIIString() + "/?sleep=1000"); Request request = prepareGet() .setUri(uri) .build(); executeRequest(config, request, new ExceptionResponseHandler()); }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testReadTimeout() throws Exception { HttpClientConfig config = createClientConfig() .setIdleTimeout(new Duration(500, MILLISECONDS)); URI uri = URI.create(baseURI.toASCIIString() + "/?sleep=1000"); Request request = prepareGet() .setUri(uri) .build(); executeRequest(config, request, new ExceptionResponseHandler()); }
@Test(expectedExceptions = Exception.class) public void testConnectReadRequestWriteJunkHangup() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, "THIS\nIS\nJUNK\n\n".getBytes(), false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = Exception.class) public void testConnectReadRequestWriteJunkHangup() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, "THIS\nIS\nJUNK\n\n".getBytes(), false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectReadIncomplete() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = IOException.class) public void testConnectReadRequestClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, Long.MAX_VALUE, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectNoRead() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 0, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = IOException.class) public void testConnectNoReadClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 0, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectReadIncomplete() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectNoRead() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 0, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectReadIncompleteClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(500, MILLISECONDS)); config.setIdleTimeout(new Duration(500, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectNoRead() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 0, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = IOException.class) public void testConnectNoReadClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 0, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectReadIncompleteClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(500, MILLISECONDS)); config.setIdleTimeout(new Duration(500, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = {IOException.class, TimeoutException.class}) public void testConnectReadIncomplete() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, 10, null, false)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(10, MILLISECONDS)); executeRequest(fakeServer, config); } }
@Test(expectedExceptions = IOException.class) public void testConnectReadRequestClose() throws Exception { try (FakeServer fakeServer = new FakeServer(scheme, host, Long.MAX_VALUE, null, true)) { HttpClientConfig config = createClientConfig(); config.setConnectTimeout(new Duration(5, SECONDS)); config.setIdleTimeout(new Duration(5, SECONDS)); executeRequest(fakeServer, config); } }
@Test public void testValidations() { assertFailsValidation(new HttpClientConfig().setConnectTimeout(null), "connectTimeout", "may not be null", NotNull.class); assertFailsValidation(new HttpClientConfig().setRequestTimeout(null), "requestTimeout", "may not be null", NotNull.class); assertFailsValidation(new HttpClientConfig().setIdleTimeout(null), "idleTimeout", "may not be null", NotNull.class); }