Add rx error learning test
This commit is contained in:
parent
7edb3248b2
commit
dfa75972d9
|
@ -0,0 +1,38 @@
|
||||||
|
package org.mercury_im.messenger.learning_tests.rx;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.Single;
|
||||||
|
|
||||||
|
public class OnErrorTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void observableErrorTest() throws InterruptedException {
|
||||||
|
Observable<String> errorObservable = Observable.error(new AssertionError());
|
||||||
|
Observable<String> fallbackObservable = Observable.just("String");
|
||||||
|
|
||||||
|
errorObservable
|
||||||
|
.doOnError(e -> System.out.println("Caught here."))
|
||||||
|
.onErrorResumeNext(fallbackObservable)
|
||||||
|
.flatMap(s -> Observable.just(s)
|
||||||
|
.doOnError(e -> System.out.println("Or here?")))
|
||||||
|
.doOnError(e -> System.out.println("Or even here?"))
|
||||||
|
.subscribe(s -> System.out.println("Result: " + s),
|
||||||
|
e -> System.out.println("Finally here."));
|
||||||
|
Thread.sleep(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void singleErrorTest() throws InterruptedException {
|
||||||
|
Single<String> errorSingle = Single.error(new AssertionError());
|
||||||
|
Single<String> successSingle = Single.just("Item");
|
||||||
|
|
||||||
|
successSingle
|
||||||
|
.map(s -> "Map: " + s)
|
||||||
|
.onErrorResumeNext(Single.just("cancel"))
|
||||||
|
.subscribe(s -> System.out.println(s),
|
||||||
|
e -> System.out.println("Error"));
|
||||||
|
Thread.sleep(100);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue