Skip to content

Commit 005c0d4

Browse files
author
Stephane Landelle
committed
Fix test (but disable some due to Netty AsyncHttpClient#1855)
1 parent ef301cc commit 005c0d4

File tree

1 file changed

+63
-22
lines changed

1 file changed

+63
-22
lines changed

api/src/test/java/org/asynchttpclient/async/SimpleAsyncHttpClientTest.java

Lines changed: 63 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
import java.io.ByteArrayOutputStream;
1919
import java.io.File;
2020
import java.io.IOException;
21+
import java.util.ArrayList;
22+
import java.util.Collections;
23+
import java.util.List;
2124
import java.util.concurrent.Future;
2225

2326
import org.asynchttpclient.ByteArrayPart;
@@ -40,11 +43,11 @@ public abstract class SimpleAsyncHttpClientTest extends AbstractBasicTest {
4043
@Test(groups = { "standalone", "default_provider" })
4144
public void inpuStreamBodyConsumerTest() throws Exception {
4245

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();
4448
try {
4549
Future<Response> future = client.post(new InputStreamBodyGenerator(new ByteArrayInputStream(MY_MESSAGE.getBytes())));
4650

47-
System.out.println("waiting for response");
4851
Response response = future.get();
4952
assertEquals(response.getStatusCode(), 200);
5053
assertEquals(response.getResponseBody(), MY_MESSAGE);
@@ -56,12 +59,12 @@ public void inpuStreamBodyConsumerTest() throws Exception {
5659
@Test(groups = { "standalone", "default_provider" })
5760
public void stringBuilderBodyConsumerTest() throws Exception {
5861

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();
6064
try {
6165
StringBuilder s = new StringBuilder();
6266
Future<Response> future = client.post(new InputStreamBodyGenerator(new ByteArrayInputStream(MY_MESSAGE.getBytes())), new AppendableBodyConsumer(s));
6367

64-
System.out.println("waiting for response");
6568
Response response = future.get();
6669
assertEquals(response.getStatusCode(), 200);
6770
assertEquals(s.toString(), MY_MESSAGE);
@@ -73,12 +76,12 @@ public void stringBuilderBodyConsumerTest() throws Exception {
7376
@Test(groups = { "standalone", "default_provider" })
7477
public void byteArrayOutputStreamBodyConsumerTest() throws Exception {
7578

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();
7781
try {
7882
ByteArrayOutputStream o = new ByteArrayOutputStream(10);
7983
Future<Response> future = client.post(new InputStreamBodyGenerator(new ByteArrayInputStream(MY_MESSAGE.getBytes())), new OutputStreamBodyConsumer(o));
8084

81-
System.out.println("waiting for response");
8285
Response response = future.get();
8386
assertEquals(response.getStatusCode(), 200);
8487
assertEquals(o.toString(), MY_MESSAGE);
@@ -95,7 +98,6 @@ public void requestByteArrayOutputStreamBodyConsumerTest() throws Exception {
9598
ByteArrayOutputStream o = new ByteArrayOutputStream(10);
9699
Future<Response> future = client.post(new InputStreamBodyGenerator(new ByteArrayInputStream(MY_MESSAGE.getBytes())), new OutputStreamBodyConsumer(o));
97100

98-
System.out.println("waiting for response");
99101
Response response = future.get();
100102
assertEquals(response.getStatusCode(), 200);
101103
assertEquals(o.toString(), MY_MESSAGE);
@@ -109,7 +111,8 @@ public void requestByteArrayOutputStreamBodyConsumerTest() throws Exception {
109111
*/
110112
@Test(groups = { "standalone", "default_provider" }, enabled = true)
111113
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")
113116
.build();
114117
try {
115118
File tmpfile = File.createTempFile("testPutZeroBytesFile", ".tmp");
@@ -164,37 +167,66 @@ public void testDeriveOverrideURL() throws Exception {
164167
@Test(groups = { "standalone", "default_provider" })
165168
public void testSimpleTransferListener() throws Exception {
166169

170+
final List<Error> errors = Collections.synchronizedList(new ArrayList<Error>());
171+
167172
SimpleAHCTransferListener listener = new SimpleAHCTransferListener() {
168173

169174
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+
}
172182
}
173183

174184
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+
}
179194
}
180195

181196
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+
}
184204
}
185205

186206
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+
}
189215
}
190216

191217
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+
}
194225
}
195226
};
196227

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();
198230
try {
199231
ByteArrayOutputStream o = new ByteArrayOutputStream(10);
200232

@@ -204,6 +236,14 @@ public void onBytesReceived(String url, long amount, long current, long total) {
204236
Future<Response> future = client.post(generator, consumer);
205237

206238
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+
207247
assertEquals(response.getStatusCode(), 200);
208248
assertEquals(o.toString(), MY_MESSAGE);
209249
} finally {
@@ -220,7 +260,8 @@ public void testNullUrl() throws Exception {
220260
} catch (NullPointerException ex) {
221261
fail();
222262
} finally {
223-
if (client != null) client.close();
263+
if (client != null)
264+
client.close();
224265
}
225266
}
226267

0 commit comments

Comments
 (0)