From 7e8b2ec8260f9cad5f3ed256f18b228b311e5145 Mon Sep 17 00:00:00 2001 From: Krzysiek Date: Wed, 27 Nov 2019 22:59:11 +0100 Subject: [PATCH] BAEL-11410: Add per request test --- .../okhttp/OkHttpTimeoutLiveTest.java | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpTimeoutLiveTest.java b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpTimeoutLiveTest.java index 18b5cef648..9c798b8c2c 100644 --- a/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpTimeoutLiveTest.java +++ b/libraries-http/src/test/java/com/baeldung/okhttp/OkHttpTimeoutLiveTest.java @@ -1,13 +1,11 @@ package com.baeldung.okhttp; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; +import okhttp3.*; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; import java.io.InterruptedIOException; import java.net.SocketTimeoutException; import java.util.concurrent.TimeUnit; @@ -25,7 +23,7 @@ public class OkHttpTimeoutLiveTest { @Test public void whenConnectTimeoutExceededThenSocketTimeoutException() { // Given - final OkHttpClient client = new OkHttpClient.Builder() + OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.MILLISECONDS) .build(); @@ -45,7 +43,7 @@ public class OkHttpTimeoutLiveTest { @Test public void whenReadTimeoutExceededThenSocketTimeoutException() { // Given - final OkHttpClient client = new OkHttpClient.Builder() + OkHttpClient client = new OkHttpClient.Builder() .readTimeout(10, TimeUnit.MILLISECONDS) .build(); @@ -65,7 +63,7 @@ public class OkHttpTimeoutLiveTest { @Test public void whenWriteTimeoutExceededThenSocketTimeoutException() { // Given - final OkHttpClient client = new OkHttpClient.Builder() + OkHttpClient client = new OkHttpClient.Builder() .writeTimeout(10, TimeUnit.MILLISECONDS) .build(); @@ -84,9 +82,9 @@ public class OkHttpTimeoutLiveTest { } @Test - public void whenCallTimeoutExceededThenSocketTimeoutException() { + public void whenCallTimeoutExceededThenInterruptedIOException() { // Given - final OkHttpClient client = new OkHttpClient.Builder() + OkHttpClient client = new OkHttpClient.Builder() .callTimeout(1, TimeUnit.SECONDS) .build(); @@ -103,6 +101,31 @@ public class OkHttpTimeoutLiveTest { logThrown(thrown); } + @Test + public void whenPerRequestTimeoutExtendedThenResponseSuccess() throws IOException { + // Given + OkHttpClient defaultClient = new OkHttpClient.Builder() + .readTimeout(1, TimeUnit.SECONDS) + .build(); + + Request request = new Request.Builder() + .url(HTTPS_ADDRESS_DELAY_2) + .build(); + + Throwable thrown = catchThrowable(() -> defaultClient.newCall(request).execute()); + + assertThat(thrown).isInstanceOf(InterruptedIOException.class); + + // When + OkHttpClient extendedTimeoutClient = defaultClient.newBuilder() + .readTimeout(5, TimeUnit.SECONDS) + .build(); + + // Then + Response response = extendedTimeoutClient.newCall(request).execute(); + assertThat(response.code()).isEqualTo(200); + } + private void logThrown(Throwable thrown) { logger.info("Thrown: ", thrown); }