@Test
void testDecodeD_3() throws Exception {

    HpackDecoder decoder = new HpackDecoder(4096, 8192);
    // First request
    String encoded = "828684410f7777772e6578616d706c652e636f6d";
    ByteBuffer buffer = ByteBuffer.wrap(TypeUtils.fromHexString(encoded));
    MetaData.Request request = (MetaData.Request) decoder.decode(buffer);
    assertEquals("GET", request.getMethod());
    assertEquals(HttpScheme.HTTP.getValue(), request.getURI().getScheme());
    assertEquals("/", request.getURI().getPath());
    assertEquals("www.example.com", request.getURI().getHost());
    assertFalse(request.iterator().hasNext());
    // Second request
    encoded = "828684be58086e6f2d6361636865";
    buffer = ByteBuffer.wrap(TypeUtils.fromHexString(encoded));
    request = (MetaData.Request) decoder.decode(buffer);
    assertEquals("GET", request.getMethod());
    assertEquals(HttpScheme.HTTP.getValue(), request.getURI().getScheme());
    assertEquals("/", request.getURI().getPath());
    assertEquals("www.example.com", request.getURI().getHost());
    Iterator<HttpField> iterator = request.iterator();
    assertTrue(iterator.hasNext());
    assertEquals(new HttpField("cache-control", "no-cache"), iterator.next());
    assertFalse(iterator.hasNext());
    // Third request
    encoded = "828785bf400a637573746f6d2d6b65790c637573746f6d2d76616c7565";
    buffer = ByteBuffer.wrap(TypeUtils.fromHexString(encoded));
    request = (MetaData.Request) decoder.decode(buffer);
    assertEquals("GET", request.getMethod());
    assertEquals(HttpScheme.HTTPS.getValue(), request.getURI().getScheme());
    assertEquals("/index.html", request.getURI().getPath());
    assertEquals("www.example.com", request.getURI().getHost());
    iterator = request.iterator();
    assertTrue(iterator.hasNext());
    assertEquals(new HttpField("custom-key", "custom-value"), iterator.next());
    assertFalse(iterator.hasNext());
}