### Question:
ReaderCharacterSource implements CharacterSource { @Override public void skipWhiteSpace() { try { index = CharScanner.skipWhiteSpace( readBuf, index, length ); if (index >= length && more) { ensureBuffer(); skipWhiteSpace(); } } catch ( Exception ex ) { ex.printStackTrace(); String str = CharScanner.errorDetails ( "skipWhiteSpaceIfNeeded issue", readBuf, index, ch ); Exceptions.handle ( ex, str, "\n\nLENGTH", length, "INDEX", index ); } } ReaderCharacterSource( final Reader reader, final int readAheadSize);  ReaderCharacterSource( final Reader reader );  ReaderCharacterSource( final String string ); @Override final int nextChar(); @Override final int currentChar(); @Override final boolean hasChar(); @Override final boolean consumeIfMatch( char[] match ); @Override final int location(); final int safeNextChar(); @Override final char[] findNextChar( int match, int esc ); final char[] findNextChar( boolean inMiddleOfString, boolean wasEscapeChar, int match, int esc ); @Override boolean hadEscape(); @Override void skipWhiteSpace(); char[] readNumber(  ); @Override String errorDetails( String message );  }### Answer:
@Test public void skipWhiteSpace() { String testString = "a b c"; initSourceWithString(testString); boolean ok = source.nextChar() == 'a' || die("" + (char)source.currentChar()); source.nextChar(); source.skipWhiteSpace(); ok &= source.nextChar() == 'b' || die("$$" + (char)source.currentChar() + "$$"); source.nextChar(); source.skipWhiteSpace(); ok &= source.nextChar() == 'c' || die("" + (char)source.currentChar()); source.skipWhiteSpace(); }