Mercury-IM/domain/src/test/java/org/mercury_im/messenger/learning_tests/rx/OnErrorTest.java

39 lines
1.4 KiB
Java

package org.mercury_im.messenger.learning_tests.rx;
import org.junit.jupiter.api.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);
}
}