43
43
public class PerRequestTimeoutTest extends AbstractBasicTest {
44
44
private static final String MSG = "Enough is enough." ;
45
45
46
- private void checkTimeoutMessage (String message ) {
47
- assertTrue (message .startsWith ("Request timeout" ), "error message indicates reason of error but got: " + message );
46
+ private void checkTimeoutMessage (String message , boolean requestTimeout ) {
47
+ if (requestTimeout )
48
+ assertTrue (message .startsWith ("Request timeout" ), "error message indicates reason of error but got: " + message );
49
+ else
50
+ assertTrue (message .startsWith ("Read timeout" ), "error message indicates reason of error but got: " + message );
48
51
assertTrue (message .contains ("localhost" ), "error message contains remote host address but got: " + message );
49
- assertTrue (message .contains ("after 100ms " ), "error message contains timeout configuration value but got: " + message );
52
+ assertTrue (message .contains ("after 100 ms " ), "error message contains timeout configuration value but got: " + message );
50
53
}
51
54
52
55
@ Override
@@ -100,7 +103,23 @@ public void testRequestTimeout() throws IOException {
100
103
fail ("Interrupted." , e );
101
104
} catch (ExecutionException e ) {
102
105
assertTrue (e .getCause () instanceof TimeoutException );
103
- checkTimeoutMessage (e .getCause ().getMessage ());
106
+ checkTimeoutMessage (e .getCause ().getMessage (), true );
107
+ } catch (TimeoutException e ) {
108
+ fail ("Timeout." , e );
109
+ }
110
+ }
111
+
112
+ @ Test (groups = "standalone" )
113
+ public void testReadTimeout () throws IOException {
114
+ try (AsyncHttpClient client = asyncHttpClient (config ().setReadTimeout (100 ))) {
115
+ Future <Response > responseFuture = client .prepareGet (getTargetUrl ()).execute ();
116
+ Response response = responseFuture .get (2000 , TimeUnit .MILLISECONDS );
117
+ assertNull (response );
118
+ } catch (InterruptedException e ) {
119
+ fail ("Interrupted." , e );
120
+ } catch (ExecutionException e ) {
121
+ assertTrue (e .getCause () instanceof TimeoutException );
122
+ checkTimeoutMessage (e .getCause ().getMessage (), false );
104
123
} catch (TimeoutException e ) {
105
124
fail ("Timeout." , e );
106
125
}
@@ -116,7 +135,7 @@ public void testGlobalDefaultPerRequestInfiniteTimeout() throws IOException {
116
135
fail ("Interrupted." , e );
117
136
} catch (ExecutionException e ) {
118
137
assertTrue (e .getCause () instanceof TimeoutException );
119
- checkTimeoutMessage (e .getCause ().getMessage ());
138
+ checkTimeoutMessage (e .getCause ().getMessage (), true );
120
139
}
121
140
}
122
141
@@ -130,7 +149,7 @@ public void testGlobalRequestTimeout() throws IOException {
130
149
fail ("Interrupted." , e );
131
150
} catch (ExecutionException e ) {
132
151
assertTrue (e .getCause () instanceof TimeoutException );
133
- checkTimeoutMessage (e .getCause ().getMessage ());
152
+ checkTimeoutMessage (e .getCause ().getMessage (), true );
134
153
} catch (TimeoutException e ) {
135
154
fail ("Timeout." , e );
136
155
}
0 commit comments