@Test public void testGetStreamPartial() throws Exception { String url = baseurl + "/" + testcase; String baseline = getThreddsroot() + relativebaseline + "/" + testcase; System.out.println("*** Testing: HTTPMethod"); System.out.println("*** URL: " + url); System.out.println("*** Testing: HTTPMethod.getResponseBodyAsStream partial read"); try (HTTPMethod method = HTTPFactory.Get(url)) { method.execute(); InputStream stream = method.getResponseBodyAsStream(); byte[] buffer = new byte[EXPECTED]; int count = stream.read(buffer, 0, 10); // partial read Assert.assertTrue("TestHTTPMethod: partial stream read closed ,ethod",!method.isClosed()); method.close(); Assert.assertTrue("TestHTTPMetthod: method.close() did not close",method.isClosed()); try { count = stream.read(buffer); } catch (Throwable t) { Assert.assertTrue("TestHTTPMethod: stream read after method.close()",method.isClosed()); } } } }
@Test public void testGetStream() throws Exception { String url = baseurl + "/" + testcase; String baseline = getThreddsroot() + relativebaseline + "/" + testcase; System.out.println("*** Testing: HTTPMethod"); System.out.println("*** URL: " + url); System.out.println("*** Testing: HTTPMethod.getResponseBodyAsStream"); try (HTTPMethod method = HTTPFactory.Get(url)) { method.execute(); InputStream stream = method.getResponseBodyAsStream(); // Read the whole thing byte[] buffer = new byte[EXPECTED]; int count = stream.read(buffer); stream.close(); /* should close the method also */ Assert.assertTrue("TestHTTPMethod: stream close did not close method",method.isClosed()); } }
Assert.assertFalse(method.isClosed()); int methodcount = session.getMethodcount(); Assert.assertTrue(methodcount == 1); Assert.assertTrue(method.hasStreamOpen()); stream.close(); Assert.assertTrue(method.isClosed()); Assert.assertFalse(method.hasStreamOpen()); methodcount = session.getMethodcount(); Assert.assertTrue(stream.isClosed()); Assert.assertFalse(method.hasStreamOpen()); Assert.assertTrue(method.isClosed()); session.close(); Assert.assertTrue(stream.isClosed()); Assert.assertTrue(method.isClosed()); methodcount = session.getMethodcount(); Assert.assertTrue(methodcount == 0); Assert.assertFalse(method.hasStreamOpen()); Assert.assertTrue(method.isClosed()); methodcount = session.getMethodcount(); Assert.assertTrue(methodcount == 0);