@Test
void shouldKeepBufferingWhenIgnoring() {

    state.updateAndGet(State::with);
    state.updateAndGet(state -> state.buffer(request, content("foo")));
    state.updateAndGet(State::without);
    state.updateAndGet(state -> state.buffer(request, content("bar")));
    // this transition is almost impossible to test under normal
    // circumstances because the test would be racing with IO
    state.updateAndGet(State::with);
    final String body = new String(state.get().getBody(), UTF_8);
    Assertions.assertEquals("foobar", body);
}