StreamUtils { public static String getStreamContents(InputStream is) { Preconditions.checkNotNull(is, "Cannot get String from a null object"); try { final char[] buffer = new char[0x10000]; StringBuilder out = new StringBuilder(); Reader in = new InputStreamReader(is, "UTF-8"); int read; do { read = in.read(buffer, 0, buffer.length); if (read > 0) { out.append(buffer, 0, read); } } while (read >= 0); in.close(); return out.toString(); } catch (IOException ioe) { throw new IllegalStateException("Error while reading response body", ioe); } } private  StreamUtils(); static String getStreamContents(InputStream is);  }
@Test public void shouldCorrectlyDecodeAStream() { String value = "expected"; InputStream is = new ByteArrayInputStream(value.getBytes()); String decoded = StreamUtils.getStreamContents(is); assertEquals("expected", decoded); }
@Test(expected = IllegalArgumentException.class) public void shouldFailForNullParameter() { InputStream is = null; StreamUtils.getStreamContents(is); fail("Must throw exception before getting here"); }