### Question:
CharSequenceInputStream extends InputStream { @Override public int available() throws IOException { return this.bbuf.remaining() + this.cbuf.remaining(); } CharSequenceInputStream(final CharSequence cs, final Charset charset, final int bufferSize);  CharSequenceInputStream(final CharSequence cs, final String charset, final int bufferSize);  CharSequenceInputStream(final CharSequence cs, final Charset charset);  CharSequenceInputStream(final CharSequence cs, final String charset); @Override int read(final byte[] b, int off, int len); @Override int read(); @Override int read(final byte[] b); @Override long skip(long n); @Override int available(); @Override void close(); @Override synchronized void mark(final int readlimit); @Override synchronized void reset(); @Override boolean markSupported();  }### Answer:
@Test public void testAvailable() throws Exception { for (final String csName : Charset.availableCharsets().keySet()) { try { if (isAvailabilityTestableForCharset(csName)) { testAvailableSkip(csName); testAvailableRead(csName); } } catch (UnsupportedOperationException e){ fail("Operation not supported for " + csName); } } }