@Test
public void testMarkSupportedInputStream() throws Exception {

    InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
    assertEquals(10, is.available());
    is = new PushbackInputStream(is);
    assertEquals(10, is.available());
    assertFalse(is.markSupported());
    is = StreamUtils.markSupportedInputStream(is);
    assertEquals(10, is.available());
    is.mark(0);
    assertEquals((int) '0', is.read());
    assertEquals((int) '1', is.read());
    is.reset();
    assertEquals((int) '0', is.read());
    assertEquals((int) '1', is.read());
    assertEquals((int) '2', is.read());
    is.mark(0);
    assertEquals((int) '3', is.read());
    assertEquals((int) '4', is.read());
    assertEquals((int) '5', is.read());
    is.reset();
    assertEquals((int) '3', is.read());
    assertEquals((int) '4', is.read());
    is.mark(0);
    assertEquals((int) '5', is.read());
    assertEquals((int) '6', is.read());
    is.reset();
    assertEquals((int) '5', is.read());
    assertEquals((int) '6', is.read());
    assertEquals((int) '7', is.read());
    assertEquals((int) '8', is.read());
    assertEquals((int) '9', is.read());
    assertEquals(-1, is.read());
    assertEquals(-1, is.read());
    is.mark(0);
    assertEquals(-1, is.read());
    assertEquals(-1, is.read());
    is.reset();
    assertEquals(-1, is.read());
    assertEquals(-1, is.read());
}