package netflix.ocelli.client; import rx.Observable; import rx.functions.Func1; import java.net.SocketTimeoutException; import java.util.concurrent.TimeUnit; public class Operations { public static Func1<TestClient, Observable<String>> delayed(final long duration, final TimeUnit units) { return new Func1<TestClient, Observable<String>>() { @Override public Observable<String> call(final TestClient server) { return Observable .interval(duration, units) .first() .map(new Func1<Long, String>() { @Override public String call(Long t1) { return server + "-ok"; } }); } }; } public static Func1<TestClient, Observable<String>> timeout(final long duration, final TimeUnit units) { return new Func1<TestClient, Observable<String>>() { @Override public Observable<String> call(final TestClient server) { return Observable .interval(duration, units) .flatMap(new Func1<Long, Observable<String>>() { @Override public Observable<String> call(Long t1) { return Observable.error(new SocketTimeoutException("Timeout")); } }); } }; } public static TrackingOperation tracking(String response) { return new TrackingOperation(response); } }