### Question:
B2JsonReader { public void skipValue() throws IOException, B2JsonException { skipWhitespace(); if (currentChar == EOF) { throw new B2JsonException("expected value but found EOF"); } else if (currentChar == '"') { readString(); } else if (currentChar == '-' || isDigit(currentChar)) { readNumberAsString(); } else if (currentChar == 'n') { readNull(); } else if (currentChar == 't') { readTrue(); } else if (currentChar == 'f') { readFalse(); } else if (currentChar == '{') { if (startObjectAndCheckForContents()) { do { readObjectFieldNameAndColon(); skipValue(); } while (this.objectHasMoreFields()); } finishObject(); } else if (currentChar == '[') { if (startArrayAndCheckForContents()) { do { skipValue(); } while (arrayHasMoreValues()); } finishArray(); } else { throw new B2JsonException("Expected value but found char: " + (char) currentChar); } } B2JsonReader(Reader in); char peekNextNotWhitespaceChar(); void skipValue(); String readNumberAsString(); String readString(); boolean startObjectAndCheckForContents(); boolean objectHasMoreFields(); boolean nextNonWhitespaceIsEof(); String readObjectFieldNameAndColon(); void skipObjectColon(); void finishObject(); boolean startArrayAndCheckForContents(); boolean arrayHasMoreValues(); void finishArray(); void readNull(); void readFalse(); void readTrue();  }### Answer:
@Test public void testSkipValue() throws IOException, B2JsonException { checkSkipValue(" null 8 "); checkSkipValue(" true 8 "); checkSkipValue(" false 8 "); checkSkipValue(" -1 8 "); checkSkipValue(" 99 8 "); checkSkipValue(" \"hello\" 8 "); checkSkipValue(" [ 3, 4 ] 8 "); checkSkipValue(" [] 8 "); checkSkipValue(" { \"a\": 5 } 8 "); checkSkipValue(" {} 8 "); }