@Test
public void readUInt32() throws IOException {

    // Max value
    byte[] data = new byte[]{(byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff};
    buildBinaryReader(data);
    long value = this.testBinaryReader.readUInt32();
    assertThat(value, is(4_294_967_295L));
    // Value 1
    data = new byte[]{(byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00};
    buildBinaryReader(data);
    value = this.testBinaryReader.readUInt32();
    assertThat(value, is(1L));
    // Min value
    data = new byte[]{(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00};
    buildBinaryReader(data);
    value = this.testBinaryReader.readUInt32();
    assertThat(value, is(0L));
    // Any value with longer input than needed. Last 0xff should be ignored.
    data = new byte[]{(byte) 0x8c, (byte) 0xae, (byte) 0x00, (byte) 0x00, (byte) 0xff};
    buildBinaryReader(data);
    value = this.testBinaryReader.readUInt32();
    assertThat(value, is(44_684L));
}