Skip to content

Commit

Permalink
Fix compiler warnings in tests
Browse files Browse the repository at this point in the history
Use try-with-resources, also avoids possible leaks on test failures
  • Loading branch information
garydgregory authored and ok2c committed Nov 14, 2022
1 parent b3ae4f2 commit e59b7ad
Show file tree
Hide file tree
Showing 15 changed files with 999 additions and 948 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -918,21 +918,22 @@ public void testRequestWithInvalidConnectionHeader() throws Exception {

final Future<IOSession> sessionFuture = client.requestSession(new HttpHost("localhost", serverEndpoint.getPort()), TIMEOUT, null);
final IOSession session = sessionFuture.get();
final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(session);

final HttpRequest request = new BasicHttpRequest(Method.GET, createRequestURI(serverEndpoint, "/hello"));
request.addHeader(HttpHeaders.CONNECTION, HeaderElements.CLOSE);
final HttpCoreContext coreContext = HttpCoreContext.create();
final Future<Message<HttpResponse, String>> future = streamEndpoint.execute(
new BasicRequestProducer(request, null),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()),
coreContext, null);
final ExecutionException exception = Assertions.assertThrows(ExecutionException.class, () ->
future.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit()));
assertThat(exception.getCause(), CoreMatchers.instanceOf(ProtocolException.class));

final EndpointDetails endpointDetails = coreContext.getEndpointDetails();
assertThat(endpointDetails.getRequestCount(), CoreMatchers.equalTo(0L));
try (final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(session)) {

final HttpRequest request = new BasicHttpRequest(Method.GET, createRequestURI(serverEndpoint, "/hello"));
request.addHeader(HttpHeaders.CONNECTION, HeaderElements.CLOSE);
final HttpCoreContext coreContext = HttpCoreContext.create();
final Future<Message<HttpResponse, String>> future = streamEndpoint.execute(
new BasicRequestProducer(request, null),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()),
coreContext, null);
final ExecutionException exception = Assertions.assertThrows(ExecutionException.class, () ->
future.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit()));
assertThat(exception.getCause(), CoreMatchers.instanceOf(ProtocolException.class));

final EndpointDetails endpointDetails = coreContext.getEndpointDetails();
assertThat(endpointDetails.getRequestCount(), CoreMatchers.equalTo(0L));
}
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -770,61 +770,62 @@ protected AsyncResponseProducer verify(final HttpRequest request, final HttpCont
final Future<IOSession> sessionFuture = client.requestSession(
new HttpHost("localhost", serverEndpoint.getPort()), TIMEOUT, null);
final IOSession ioSession = sessionFuture.get();
final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(ioSession);
try (final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(ioSession)) {

final HttpRequest request1 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
request1.addHeader("password", "secret");
final Future<Message<HttpResponse, String>> future1 = streamEndpoint.execute(
new BasicRequestProducer(request1, new MultiLineEntityProducer("0123456789abcdef", 1000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result1 = future1.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result1);
final HttpResponse response1 = result1.getHead();
Assertions.assertNotNull(response1);
Assertions.assertEquals(200, response1.getCode());
Assertions.assertEquals("All is well", result1.getBody());

Assertions.assertTrue(ioSession.isOpen());

final HttpRequest request2 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future2 = streamEndpoint.execute(
new BasicRequestProducer(request2, new MultiLineEntityProducer("0123456789abcdef", 5000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result2 = future2.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result2);
final HttpResponse response2 = result2.getHead();
Assertions.assertNotNull(response2);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response2.getCode());
Assertions.assertEquals("You shall not pass", result2.getBody());

Assertions.assertTrue(ioSession.isOpen());

final HttpRequest request3 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
request3.addHeader("password", "secret");
final Future<Message<HttpResponse, String>> future3 = streamEndpoint.execute(
new BasicRequestProducer(request3, new MultiLineEntityProducer("0123456789abcdef", 1000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result3 = future3.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result3);
final HttpResponse response3 = result3.getHead();
Assertions.assertNotNull(response3);
Assertions.assertEquals(200, response3.getCode());
Assertions.assertEquals("All is well", result3.getBody());
final HttpRequest request1 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
request1.addHeader("password", "secret");
final Future<Message<HttpResponse, String>> future1 = streamEndpoint.execute(
new BasicRequestProducer(request1, new MultiLineEntityProducer("0123456789abcdef", 1000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result1 = future1.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result1);
final HttpResponse response1 = result1.getHead();
Assertions.assertNotNull(response1);
Assertions.assertEquals(200, response1.getCode());
Assertions.assertEquals("All is well", result1.getBody());

Assertions.assertTrue(ioSession.isOpen());
Assertions.assertTrue(ioSession.isOpen());

final HttpRequest request4 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future4 = streamEndpoint.execute(
new BasicRequestProducer(request4, AsyncEntityProducers.create("blah")),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result4 = future4.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result4);
final HttpResponse response4 = result4.getHead();
Assertions.assertNotNull(response4);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response4.getCode());
Assertions.assertEquals("You shall not pass", result4.getBody());

Assertions.assertFalse(ioSession.isOpen());
final HttpRequest request2 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future2 = streamEndpoint.execute(
new BasicRequestProducer(request2, new MultiLineEntityProducer("0123456789abcdef", 5000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result2 = future2.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result2);
final HttpResponse response2 = result2.getHead();
Assertions.assertNotNull(response2);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response2.getCode());
Assertions.assertEquals("You shall not pass", result2.getBody());

Assertions.assertTrue(ioSession.isOpen());

final HttpRequest request3 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
request3.addHeader("password", "secret");
final Future<Message<HttpResponse, String>> future3 = streamEndpoint.execute(
new BasicRequestProducer(request3, new MultiLineEntityProducer("0123456789abcdef", 1000)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result3 = future3.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result3);
final HttpResponse response3 = result3.getHead();
Assertions.assertNotNull(response3);
Assertions.assertEquals(200, response3.getCode());
Assertions.assertEquals("All is well", result3.getBody());

Assertions.assertTrue(ioSession.isOpen());

final HttpRequest request4 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future4 = streamEndpoint.execute(
new BasicRequestProducer(request4, AsyncEntityProducers.create("blah")),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result4 = future4.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result4);
final HttpResponse response4 = result4.getHead();
Assertions.assertNotNull(response4);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response4.getCode());
Assertions.assertEquals("You shall not pass", result4.getBody());

Assertions.assertFalse(ioSession.isOpen());
}
}

@Test
Expand Down Expand Up @@ -862,23 +863,24 @@ protected AsyncResponseProducer verify(final HttpRequest request, final HttpCont
final Future<IOSession> sessionFuture = client.requestSession(
new HttpHost("localhost", serverEndpoint.getPort()), TIMEOUT, null);
final IOSession ioSession = sessionFuture.get();
final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(ioSession);
try (final ClientSessionEndpoint streamEndpoint = new ClientSessionEndpoint(ioSession)) {

final HttpRequest request1 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future1 = streamEndpoint.execute(
new BasicRequestProducer(request1, new MultiBinEntityProducer(
new byte[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'},
100000,
ContentType.TEXT_PLAIN)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result1 = future1.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result1);
final HttpResponse response1 = result1.getHead();
Assertions.assertNotNull(response1);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response1.getCode());
Assertions.assertNotNull("You shall not pass", result1.getBody());
final HttpRequest request1 = new BasicHttpRequest(Method.POST, createRequestURI(serverEndpoint, "/echo"));
final Future<Message<HttpResponse, String>> future1 = streamEndpoint.execute(
new BasicRequestProducer(request1, new MultiBinEntityProducer(
new byte[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'},
100000,
ContentType.TEXT_PLAIN)),
new BasicResponseConsumer<>(new StringAsyncEntityConsumer()), null);
final Message<HttpResponse, String> result1 = future1.get(TIMEOUT.getDuration(), TIMEOUT.getTimeUnit());
Assertions.assertNotNull(result1);
final HttpResponse response1 = result1.getHead();
Assertions.assertNotNull(response1);
Assertions.assertEquals(HttpStatus.SC_UNAUTHORIZED, response1.getCode());
Assertions.assertNotNull("You shall not pass", result1.getBody());

Assertions.assertFalse(streamEndpoint.isOpen());
Assertions.assertFalse(streamEndpoint.isOpen());
}
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,9 @@ public void testCorruptChunkedInputStreamClose() throws IOException {
final String s = "whatever\r\n01234\r\n5\r\n56789\r\n0\r\n";
final SessionInputBuffer inBuffer = new SessionInputBufferImpl(16);
final ByteArrayInputStream inputStream = new ByteArrayInputStream(s.getBytes(StandardCharsets.ISO_8859_1));
final ChunkedInputStream in = new ChunkedInputStream(inBuffer, inputStream);
Assertions.assertThrows(MalformedChunkCodingException.class, in::read);
try (final ChunkedInputStream in = new ChunkedInputStream(inBuffer, inputStream)) {
Assertions.assertThrows(MalformedChunkCodingException.class, in::read);
}
}

@Test
Expand All @@ -284,11 +285,11 @@ public void testEmptyChunkedInputStream() throws IOException {
public void testTooLongChunkHeader() throws IOException {
final String s = "5; and some very looooong commend\r\n12345\r\n0\r\n";
final SessionInputBuffer inBuffer1 = new SessionInputBufferImpl(16);
final ByteArrayInputStream inputStream1 = new ByteArrayInputStream(s.getBytes(StandardCharsets.ISO_8859_1));
final ChunkedInputStream in1 = new ChunkedInputStream(inBuffer1, inputStream1);
final byte[] buffer = new byte[300];
Assertions.assertEquals(5, in1.read(buffer));
in1.close();
final ByteArrayInputStream inputStream1 = new ByteArrayInputStream(s.getBytes(StandardCharsets.ISO_8859_1));
try (final ChunkedInputStream in1 = new ChunkedInputStream(inBuffer1, inputStream1)) {
Assertions.assertEquals(5, in1.read(buffer));
}

final SessionInputBuffer inBuffer2 = new SessionInputBufferImpl(16, 10);
final ByteArrayInputStream inputStream2 = new ByteArrayInputStream(s.getBytes(StandardCharsets.ISO_8859_1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,8 @@ public void testCodingCompletedFromFile() throws Exception {
testfile.write("more stuff".getBytes(StandardCharsets.US_ASCII));
}

try (final FileChannel fchannel = new RandomAccessFile(this.tmpfile, "rw").getChannel()) {
try (final RandomAccessFile file = new RandomAccessFile(this.tmpfile, "rw");
final FileChannel fchannel = file.getChannel()) {
Assertions.assertThrows(IllegalStateException.class, () -> encoder.transfer(fchannel, 0, 10));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,12 @@ public void testBasics() throws Exception {

@Test
public void testToString() throws Exception {
final BasicHttpEntity httpentity = new BasicHttpEntity(EmptyInputStream.INSTANCE, 10,
ContentType.parseLenient("blah"), "yada", true);
Assertions.assertEquals("[Entity-Class: BasicHttpEntity, Content-Type: blah, Content-Encoding: yada, chunked: true]",
httpentity.toString());
try (final BasicHttpEntity httpentity = new BasicHttpEntity(EmptyInputStream.INSTANCE, 10,
ContentType.parseLenient("blah"), "yada", true)) {
Assertions.assertEquals(
"[Entity-Class: BasicHttpEntity, Content-Type: blah, Content-Encoding: yada, chunked: true]",
httpentity.toString());
}
}

@Test
Expand Down
Loading

0 comments on commit e59b7ad

Please sign in to comment.