public static LiveHttpResponse doOnCancel(LiveHttpResponse response, Runnable action) { return response.newBuilder().body(it -> it.doOnCancel(action)).build(); }
public static LiveHttpRequest doOnCancel(LiveHttpRequest request, Runnable action) { return request.newBuilder().body(it -> it.doOnCancel(action)).build(); }
@Test public void runsOnCancelActionWhenCancelled() { AtomicBoolean cancelled = new AtomicBoolean(); ByteStream stream = new ByteStream(Flux.just(buf1, buf2)) .doOnCancel(() -> cancelled.set(true)); StepVerifier.create(stream) .thenRequest(1) .expectNext(buf1) .then(() -> assertThat(cancelled.get(), is(false))) .thenCancel() .verify(); assertThat(cancelled.get(), is(true)); }