diff --git a/src/main/java/seatsio/util/UnirestWrapper.java b/src/main/java/seatsio/util/UnirestWrapper.java index 3403b11c..5cbff59d 100644 --- a/src/main/java/seatsio/util/UnirestWrapper.java +++ b/src/main/java/seatsio/util/UnirestWrapper.java @@ -9,7 +9,9 @@ public class UnirestWrapper { - private static UnirestInstance unirest = new UnirestInstance(new Config().concurrency(200, 200)); + private static UnirestInstance unirest = new UnirestInstance(new Config() + .socketTimeout(10000) + .concurrency(200, 200)); private int maxRetries = 5; private final String secretKey; diff --git a/src/test/java/seatsio/ErrorHandlingTest.java b/src/test/java/seatsio/ErrorHandlingTest.java index dcd37bf4..0297e9eb 100644 --- a/src/test/java/seatsio/ErrorHandlingTest.java +++ b/src/test/java/seatsio/ErrorHandlingTest.java @@ -1,5 +1,6 @@ package seatsio; +import kong.unirest.UnirestException; import org.junit.jupiter.api.Test; import seatsio.util.UnirestWrapper; @@ -31,4 +32,13 @@ public void testWeirdError() { assertThat(e.getMessage()).contains("Error while executing GET unknownProtocol:///charts/unexistingChart"); assertThat(e.errors).isNull(); } + + @Test + public void testSocketTimeout() { + SeatsioException e = assertThrows(SeatsioException.class, () -> new UnirestWrapper("secretKey", null).stringResponse(get("https://httpbin.seatsio.net/delay/5").socketTimeout(10))); + assertThat(e.getMessage()).contains("Error while executing GET https://httpbin.seatsio.net/delay/5"); + assertThat(e.getCause()).isInstanceOf(UnirestException.class); + assertThat(e.getCause().getCause()).isInstanceOf(java.net.SocketTimeoutException.class); + assertThat(e.errors).isNull(); + } }