18
18
import java .io .ByteArrayOutputStream ;
19
19
import java .io .File ;
20
20
import java .io .IOException ;
21
+ import java .util .ArrayList ;
22
+ import java .util .Collections ;
23
+ import java .util .List ;
21
24
import java .util .concurrent .Future ;
22
25
23
26
import org .asynchttpclient .ByteArrayPart ;
@@ -40,11 +43,11 @@ public abstract class SimpleAsyncHttpClientTest extends AbstractBasicTest {
40
43
@ Test (groups = { "standalone" , "default_provider" })
41
44
public void inpuStreamBodyConsumerTest () throws Exception {
42
45
43
- SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 ).setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
46
+ SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 )
47
+ .setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
44
48
try {
45
49
Future <Response > future = client .post (new InputStreamBodyGenerator (new ByteArrayInputStream (MY_MESSAGE .getBytes ())));
46
50
47
- System .out .println ("waiting for response" );
48
51
Response response = future .get ();
49
52
assertEquals (response .getStatusCode (), 200 );
50
53
assertEquals (response .getResponseBody (), MY_MESSAGE );
@@ -56,12 +59,12 @@ public void inpuStreamBodyConsumerTest() throws Exception {
56
59
@ Test (groups = { "standalone" , "default_provider" })
57
60
public void stringBuilderBodyConsumerTest () throws Exception {
58
61
59
- SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 ).setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
62
+ SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 )
63
+ .setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
60
64
try {
61
65
StringBuilder s = new StringBuilder ();
62
66
Future <Response > future = client .post (new InputStreamBodyGenerator (new ByteArrayInputStream (MY_MESSAGE .getBytes ())), new AppendableBodyConsumer (s ));
63
67
64
- System .out .println ("waiting for response" );
65
68
Response response = future .get ();
66
69
assertEquals (response .getStatusCode (), 200 );
67
70
assertEquals (s .toString (), MY_MESSAGE );
@@ -73,12 +76,12 @@ public void stringBuilderBodyConsumerTest() throws Exception {
73
76
@ Test (groups = { "standalone" , "default_provider" })
74
77
public void byteArrayOutputStreamBodyConsumerTest () throws Exception {
75
78
76
- SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 ).setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
79
+ SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 )
80
+ .setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 60 * 1000 ).setUrl (getTargetUrl ()).setHeader ("Content-Type" , "text/html" ).build ();
77
81
try {
78
82
ByteArrayOutputStream o = new ByteArrayOutputStream (10 );
79
83
Future <Response > future = client .post (new InputStreamBodyGenerator (new ByteArrayInputStream (MY_MESSAGE .getBytes ())), new OutputStreamBodyConsumer (o ));
80
84
81
- System .out .println ("waiting for response" );
82
85
Response response = future .get ();
83
86
assertEquals (response .getStatusCode (), 200 );
84
87
assertEquals (o .toString (), MY_MESSAGE );
@@ -95,7 +98,6 @@ public void requestByteArrayOutputStreamBodyConsumerTest() throws Exception {
95
98
ByteArrayOutputStream o = new ByteArrayOutputStream (10 );
96
99
Future <Response > future = client .post (new InputStreamBodyGenerator (new ByteArrayInputStream (MY_MESSAGE .getBytes ())), new OutputStreamBodyConsumer (o ));
97
100
98
- System .out .println ("waiting for response" );
99
101
Response response = future .get ();
100
102
assertEquals (response .getStatusCode (), 200 );
101
103
assertEquals (o .toString (), MY_MESSAGE );
@@ -109,7 +111,8 @@ public void requestByteArrayOutputStreamBodyConsumerTest() throws Exception {
109
111
*/
110
112
@ Test (groups = { "standalone" , "default_provider" }, enabled = true )
111
113
public void testPutZeroBytesFileTest () throws Exception {
112
- SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 ).setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 1000 ).setUrl (getTargetUrl () + "/testPutZeroBytesFileTest.txt" ).setHeader ("Content-Type" , "text/plain" )
114
+ SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setIdleConnectionInPoolTimeoutInMs (100 )
115
+ .setMaximumConnectionsTotal (50 ).setRequestTimeoutInMs (5 * 1000 ).setUrl (getTargetUrl () + "/testPutZeroBytesFileTest.txt" ).setHeader ("Content-Type" , "text/plain" )
113
116
.build ();
114
117
try {
115
118
File tmpfile = File .createTempFile ("testPutZeroBytesFile" , ".tmp" );
@@ -164,37 +167,66 @@ public void testDeriveOverrideURL() throws Exception {
164
167
@ Test (groups = { "standalone" , "default_provider" })
165
168
public void testSimpleTransferListener () throws Exception {
166
169
170
+ final List <Error > errors = Collections .synchronizedList (new ArrayList <Error >());
171
+
167
172
SimpleAHCTransferListener listener = new SimpleAHCTransferListener () {
168
173
169
174
public void onStatus (String url , int statusCode , String statusText ) {
170
- assertEquals (statusCode , 200 );
171
- assertEquals (url , getTargetUrl ());
175
+ try {
176
+ assertEquals (statusCode , 200 );
177
+ assertEquals (url , getTargetUrl ());
178
+ } catch (Error e ) {
179
+ errors .add (e );
180
+ throw e ;
181
+ }
172
182
}
173
183
174
184
public void onHeaders (String url , HeaderMap headers ) {
175
- assertEquals (url , getTargetUrl ());
176
- assertNotNull (headers );
177
- assertTrue (!headers .isEmpty ());
178
- assertEquals (headers .getFirstValue ("X-Custom" ), "custom" );
185
+ try {
186
+ assertEquals (url , getTargetUrl ());
187
+ assertNotNull (headers );
188
+ assertTrue (!headers .isEmpty ());
189
+ assertEquals (headers .getFirstValue ("X-Custom" ), "custom" );
190
+ } catch (Error e ) {
191
+ errors .add (e );
192
+ throw e ;
193
+ }
179
194
}
180
195
181
196
public void onCompleted (String url , int statusCode , String statusText ) {
182
- assertEquals (statusCode , 200 );
183
- assertEquals (url , getTargetUrl ());
197
+ try {
198
+ assertEquals (statusCode , 200 );
199
+ assertEquals (url , getTargetUrl ());
200
+ } catch (Error e ) {
201
+ errors .add (e );
202
+ throw e ;
203
+ }
184
204
}
185
205
186
206
public void onBytesSent (String url , long amount , long current , long total ) {
187
- assertEquals (url , getTargetUrl ());
188
- assertEquals (total , MY_MESSAGE .getBytes ().length );
207
+ try {
208
+ assertEquals (url , getTargetUrl ());
209
+ // FIXME Netty bug, see https://github.com/netty/netty/issues/1855
210
+ // assertEquals(total, MY_MESSAGE.getBytes().length);
211
+ } catch (Error e ) {
212
+ errors .add (e );
213
+ throw e ;
214
+ }
189
215
}
190
216
191
217
public void onBytesReceived (String url , long amount , long current , long total ) {
192
- assertEquals (url , getTargetUrl ());
193
- assertEquals (total , -1 );
218
+ try {
219
+ assertEquals (url , getTargetUrl ());
220
+ assertEquals (total , -1 );
221
+ } catch (Error e ) {
222
+ errors .add (e );
223
+ throw e ;
224
+ }
194
225
}
195
226
};
196
227
197
- SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setUrl (getTargetUrl ()).setHeader ("Custom" , "custom" ).setListener (listener ).build ();
228
+ SimpleAsyncHttpClient client = new SimpleAsyncHttpClient .Builder ().setProviderClass (getProviderClass ()).setUrl (getTargetUrl ()).setHeader ("Custom" , "custom" )
229
+ .setListener (listener ).build ();
198
230
try {
199
231
ByteArrayOutputStream o = new ByteArrayOutputStream (10 );
200
232
@@ -204,6 +236,14 @@ public void onBytesReceived(String url, long amount, long current, long total) {
204
236
Future <Response > future = client .post (generator , consumer );
205
237
206
238
Response response = future .get ();
239
+
240
+ if (!errors .isEmpty ()) {
241
+ for (Error e : errors ) {
242
+ e .printStackTrace ();
243
+ }
244
+ throw errors .get (0 );
245
+ }
246
+
207
247
assertEquals (response .getStatusCode (), 200 );
208
248
assertEquals (o .toString (), MY_MESSAGE );
209
249
} finally {
@@ -220,7 +260,8 @@ public void testNullUrl() throws Exception {
220
260
} catch (NullPointerException ex ) {
221
261
fail ();
222
262
} finally {
223
- if (client != null ) client .close ();
263
+ if (client != null )
264
+ client .close ();
224
265
}
225
266
}
226
267
0 commit comments