Skip to content

Commit fb52c95

Browse files
author
Stephane Landelle
committed
Simplify tests with Normann's recommendations
1 parent e08490d commit fb52c95

File tree

1 file changed

+51
-64
lines changed

1 file changed

+51
-64
lines changed

providers/netty4/src/test/java/org/asynchttpclient/providers/netty4/NettyBasicHttpsPureNettyTest.java

Lines changed: 51 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -454,12 +454,15 @@ public Response get(long timeout, TimeUnit unit) throws InterruptedException, Ex
454454
}
455455
}
456456

457-
private void connectThenPerformRequest(Bootstrap b, String url, final ResponseFuture responseFuture, final RequestPerformer requestPerformer) throws InterruptedException {
457+
private Channel connect(Bootstrap b, String url, final ResponseFuture responseFuture) throws InterruptedException {
458458

459459
URI uri = URI.create(url);
460460

461-
// FIXME handle connect timeout exception
462-
b.connect(uri.getHost(), uri.getPort()).sync().addListener(new GenericFutureListener<ChannelFuture>() {
461+
ChannelFuture f = b.connect(uri.getHost(), uri.getPort()).sync();
462+
463+
MyChannelInboundHandlerAdapter.responseFutureAttr(f.channel().pipeline()).set(responseFuture);
464+
465+
f.addListener(new GenericFutureListener<ChannelFuture>() {
463466
@Override
464467
public void operationComplete(ChannelFuture future) throws Exception {
465468
LOGGER.info("Connect future complete");
@@ -485,54 +488,43 @@ public void operationComplete(io.netty.util.concurrent.Future<Channel> f) throws
485488
}
486489

487490
LOGGER.error("Handshake failed", cause);
488-
responseFuture.set(f.cause());
489-
} else {
490-
MyChannelInboundHandlerAdapter.responseFutureAttr(ch.pipeline()).set(responseFuture);
491-
requestPerformer.performRequest(ch);
491+
responseFuture.set(cause);
492492
}
493493
}
494494
});
495495
}
496496
}
497497
}
498498
});
499-
}
500-
501-
private static interface RequestPerformer {
502499

503-
void performRequest(Channel ch) throws Exception;
500+
return f.channel();
504501
}
505502

506503
private ResponseFuture post(Bootstrap b, String url, final String string) throws InterruptedException {
507504

508505
final URI uri = URI.create(url);
509506
final ResponseFuture responseFuture = new ResponseFuture();
510507

511-
RequestPerformer requestPerformer = new RequestPerformer() {
508+
Channel ch = connect(b, url, responseFuture);
509+
510+
byte[] bodyBytes = string.getBytes(CharsetUtil.UTF_8);
511+
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getPath(), Unpooled.wrappedBuffer(bodyBytes));
512+
request.headers()/**/
513+
.set(HttpHeaders.Names.CONTENT_TYPE, "text/html")/**/
514+
.set(HttpHeaders.Names.HOST, uri.getHost())/**/
515+
.set(HttpHeaders.Names.ACCEPT, "*/*")/**/
516+
.set(HttpHeaders.Names.CONTENT_LENGTH, bodyBytes.length);
517+
518+
ch.writeAndFlush(request).addListener(new GenericFutureListener<ChannelFuture>() {
512519
@Override
513-
public void performRequest(Channel ch) {
514-
byte[] bodyBytes = string.getBytes(CharsetUtil.UTF_8);
515-
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getPath(), Unpooled.wrappedBuffer(bodyBytes));
516-
request.headers()/**/
517-
.set(HttpHeaders.Names.CONTENT_TYPE, "text/html")/**/
518-
.set(HttpHeaders.Names.HOST, uri.getHost())/**/
519-
.set(HttpHeaders.Names.ACCEPT, "*/*")/**/
520-
.set(HttpHeaders.Names.CONTENT_LENGTH, bodyBytes.length);
521-
522-
ch.writeAndFlush(request).addListener(new GenericFutureListener<ChannelFuture>() {
523-
@Override
524-
public void operationComplete(ChannelFuture future) throws Exception {
525-
if (!future.isSuccess()) {
526-
ResponseFuture responseFuture = MyChannelInboundHandlerAdapter.responseFutureAttr(future.channel().pipeline()).getAndRemove();
527-
responseFuture.set(future.cause());
528-
MyChannelInboundHandlerAdapter.responseAttr(future.channel().pipeline()).remove();
529-
}
530-
}
531-
});
520+
public void operationComplete(ChannelFuture future) throws Exception {
521+
if (!future.isSuccess()) {
522+
ResponseFuture responseFuture = MyChannelInboundHandlerAdapter.responseFutureAttr(future.channel().pipeline()).getAndRemove();
523+
responseFuture.set(future.cause());
524+
MyChannelInboundHandlerAdapter.responseAttr(future.channel().pipeline()).remove();
525+
}
532526
}
533-
};
534-
535-
connectThenPerformRequest(b, url, responseFuture, requestPerformer);
527+
});
536528

537529
return responseFuture;
538530
}
@@ -563,37 +555,32 @@ private ResponseFuture post(Bootstrap b, String url, final File file) throws Exc
563555
final URI uri = URI.create(url);
564556
final ResponseFuture responseFuture = new ResponseFuture();
565557

566-
RequestPerformer requestPerformer = new RequestPerformer() {
567-
@Override
568-
public void performRequest(Channel ch) throws Exception {
569-
HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getPath());
570-
request.headers()/**/
571-
.set(HttpHeaders.Names.CONTENT_TYPE, "text/html")/**/
572-
.set(HttpHeaders.Names.HOST, uri.getHost())/**/
573-
.set(HttpHeaders.Names.ACCEPT, "*/*")/**/
574-
.set(HttpHeaders.Names.CONTENT_LENGTH, file.length());
575-
576-
ch.writeAndFlush(request);
577-
RandomAccessFile raf = new RandomAccessFile(file, "r");
578-
ch.write(new ChunkedFile(raf, 0, file.length(), 8 * 1024))/**/
579-
// FIXME DefaultFileRegion not working over HTTPS?
580-
// ch.write(new DefaultFileRegion(raf.getChannel(), 0, file.length()))/**/
581-
.addListener(new GenericFutureListener<ChannelFuture>() {
582-
@Override
583-
public void operationComplete(ChannelFuture future) throws Exception {
584-
if (!future.isSuccess()) {
585-
ResponseFuture responseFuture = MyChannelInboundHandlerAdapter.responseFutureAttr(future.channel().pipeline()).getAndRemove();
586-
responseFuture.set(future.cause());
587-
MyChannelInboundHandlerAdapter.responseAttr(future.channel().pipeline()).remove();
588-
}
589-
}
590-
});
591-
592-
ch.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
593-
}
594-
};
558+
Channel ch = connect(b, url, responseFuture);
559+
560+
HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getPath());
561+
request.headers()/**/
562+
.set(HttpHeaders.Names.CONTENT_TYPE, "text/html")/**/
563+
.set(HttpHeaders.Names.HOST, uri.getHost())/**/
564+
.set(HttpHeaders.Names.ACCEPT, "*/*")/**/
565+
.set(HttpHeaders.Names.CONTENT_LENGTH, file.length());
566+
567+
ch.writeAndFlush(request);
568+
RandomAccessFile raf = new RandomAccessFile(file, "r");
569+
ch.write(new ChunkedFile(raf, 0, file.length(), 8 * 1024))/**/
570+
// FIXME DefaultFileRegion not working over HTTPS?
571+
// ch.write(new DefaultFileRegion(raf.getChannel(), 0, file.length()))/**/
572+
.addListener(new GenericFutureListener<ChannelFuture>() {
573+
@Override
574+
public void operationComplete(ChannelFuture future) throws Exception {
575+
if (!future.isSuccess()) {
576+
ResponseFuture responseFuture = MyChannelInboundHandlerAdapter.responseFutureAttr(future.channel().pipeline()).getAndRemove();
577+
responseFuture.set(future.cause());
578+
MyChannelInboundHandlerAdapter.responseAttr(future.channel().pipeline()).remove();
579+
}
580+
}
581+
});
595582

596-
connectThenPerformRequest(b, url, responseFuture, requestPerformer);
583+
ch.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
597584

598585
return responseFuture;
599586
}

0 commit comments

Comments
 (0)