public T eventuallyContains(Predicate<T> pred) { try { return events.timeout(30, TimeUnit.SECONDS) .onErrorResumeNext(t -> Observable.error(new RuntimeException("Presumably first timeout failed", t))) .filter(pred::test) .take(1) .timeout(720, TimeUnit.SECONDS).toBlocking().first(); } catch (Throwable t) { logger.error("Failure", t); throw new RuntimeException(t); } }
public void assertSubscribed() { frames.timeout(30, TimeUnit.SECONDS) .filter(frame -> frame.frame().getCommand().equals(Frame.Command.SUBSCRIBE)).take(1).timeout(720, TimeUnit.SECONDS) .toBlocking().first(); } public void assertAcked(int count) {
public void assertAcked(int count) { assertThat(frames.timeout(30, TimeUnit.SECONDS) .filter(frame -> frame.frame().getCommand().equals(Frame.Command.ACK)) .take(5, TimeUnit.SECONDS).toList().toBlocking().first().size(), is(greaterThanOrEqualTo(count))); }