@Test
  public void testByte() throws IOException {
    // test writing and reading bytes.
    writer.writeByte((byte) 1);
    writer.writeByte((byte) 0xff);
    writer.writeByte((byte) '\"');
    writer.writeByte((byte) 0);

    BinaryReader reader = getReader();

    assertEquals((byte) 1, reader.expectByte());
    assertEquals((byte) 0xff, reader.expectByte());
    assertEquals((byte) '\"', reader.expectByte());
    assertEquals((byte) 0, reader.expectByte());

    try {
      reader.expectByte();
    } catch (IOException e) {
      assertEquals("Missing expected byte", e.getMessage());
    }
  }