@Test public void requestDoOnErrorActivatesWhenErrors() { RuntimeException cause = new RuntimeException("help!!"); Requests.doOnError(request, (it) -> completed.set(Optional.of(it))) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.error(cause); assertThat(completed.get(), is(Optional.of(cause))); }
@Test public void requestDoOnErrorDoesNotActivatesWhenSuccessfullyCompleted() { Requests.doOnError(request, (cause) -> completed.set(Optional.of(cause))) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.complete(); assertThat(completed.get(), is(nullValue())); }
@Test public void responseDoOnErrorActivatesWhenErrors() { RuntimeException cause = new RuntimeException("help!!"); Requests.doOnError(response, (it) -> completed.set(Optional.of(it))) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.error(cause); assertThat(completed.get(), is(Optional.of(cause))); } }
@Test public void responseDoOnErrorDoesNotActivatesWhenSuccessfullyCompleted() { Requests.doOnError(response, (cause) -> completed.set(Optional.of(cause))) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.complete(); assertThat(completed.get(), is(nullValue())); }
public Flux<LiveHttpResponse> apply() { EventProcessor eventProcessor = new QueueDrainingEventProcessor( new FsmEventProcessor<>(fsm, (throwable, state) -> { }, "")); return publisher .doOnNext(headers -> eventProcessor.submit(new MessageHeaders())) .doOnComplete(() -> eventProcessor.submit(new MessageCompleted())) .doOnError(cause -> eventProcessor.submit(new MessageError(cause))) .doOnCancel(() -> eventProcessor.submit(new MessageCancelled())) .map(response -> Requests.doOnError(response, cause -> eventProcessor.submit(new ContentError(cause)))) .map(response -> Requests.doOnComplete(response, () -> eventProcessor.submit(new ContentEnd()))) .map(response -> Requests.doOnCancel(response, () -> eventProcessor.submit(new ContentCancelled()))); }