BAEL-11410: Add per request test

This commit is contained in:
Krzysiek 2019-11-27 22:59:11 +01:00
parent 9168492b7b
commit b241ef7886
1 changed files with 32 additions and 9 deletions

View File

@ -1,13 +1,11 @@
package com.baeldung.okhttp; package com.baeldung.okhttp;
import okhttp3.MediaType; import okhttp3.*;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import org.junit.Test; import org.junit.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InterruptedIOException; import java.io.InterruptedIOException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -25,7 +23,7 @@ public class OkHttpTimeoutLiveTest {
@Test @Test
public void whenConnectTimeoutExceededThenSocketTimeoutException() { public void whenConnectTimeoutExceededThenSocketTimeoutException() {
// Given // Given
final OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.MILLISECONDS) .connectTimeout(10, TimeUnit.MILLISECONDS)
.build(); .build();
@ -45,7 +43,7 @@ public class OkHttpTimeoutLiveTest {
@Test @Test
public void whenReadTimeoutExceededThenSocketTimeoutException() { public void whenReadTimeoutExceededThenSocketTimeoutException() {
// Given // Given
final OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(10, TimeUnit.MILLISECONDS) .readTimeout(10, TimeUnit.MILLISECONDS)
.build(); .build();
@ -65,7 +63,7 @@ public class OkHttpTimeoutLiveTest {
@Test @Test
public void whenWriteTimeoutExceededThenSocketTimeoutException() { public void whenWriteTimeoutExceededThenSocketTimeoutException() {
// Given // Given
final OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.writeTimeout(10, TimeUnit.MILLISECONDS) .writeTimeout(10, TimeUnit.MILLISECONDS)
.build(); .build();
@ -84,9 +82,9 @@ public class OkHttpTimeoutLiveTest {
} }
@Test @Test
public void whenCallTimeoutExceededThenSocketTimeoutException() { public void whenCallTimeoutExceededThenInterruptedIOException() {
// Given // Given
final OkHttpClient client = new OkHttpClient.Builder() OkHttpClient client = new OkHttpClient.Builder()
.callTimeout(1, TimeUnit.SECONDS) .callTimeout(1, TimeUnit.SECONDS)
.build(); .build();
@ -103,6 +101,31 @@ public class OkHttpTimeoutLiveTest {
logThrown(thrown); 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) { private void logThrown(Throwable thrown) {
logger.info("Thrown: ", thrown); logger.info("Thrown: ", thrown);
} }