@Test public void requestDoOnCompleteDoesNotActivatesWhenErrors() { RuntimeException cause = new RuntimeException("help!!"); Requests.doOnComplete(request, () -> completed.set(Optional.empty())) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.error(cause); assertThat(completed.get(), is(nullValue())); }
@Test public void requestDoOnCompleteActivatesWhenSuccessfullyCompleted() { Requests.doOnComplete(request, () -> completed.set(Optional.empty())) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.complete(); assertThat(completed.get(), is(Optional.empty())); }
@Test public void responseDoOnCompleteActivatesWhenSuccessfullyCompleted() { Requests.doOnComplete(response, () -> completed.set(Optional.empty())) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.complete(); assertThat(completed.get(), is(Optional.empty())); }
@Test public void responseDoOnCompleteDoesNotActivatesWhenErrors() { RuntimeException cause = new RuntimeException("help!!"); Requests.doOnComplete(response, () -> completed.set(Optional.empty())) .consume(); publisher.next(new Buffer("content", UTF_8)); assertThat(completed.get(), is(nullValue())); publisher.error(cause); 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()))); }