/**
* Test shows the usage of backup `Observable`. Checks if it completes at least one time.
* <br>
* Test created by Robert Zagorski on 19.10.2016
*/
@Test
public void testBackupObservable4() throws Exception {
final int REQUEST_COUNT = 3;
mockWebServer.setDispatcher(new Dispatcher() {
@Override
public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
if (mockWebServer.getRequestCount() <= REQUEST_COUNT) {
return new MockResponse().setResponseCode(404);
} else if (mockWebServer.getRequestCount() > REQUEST_COUNT) {
return MockWebServerUtils.getSuccessfulResponse();
}
return new MockResponse().setResponseCode(500);
}
});
Observable<Boolean> backupObservable = Observable.just(Boolean.TRUE);
TestObservable testBackupObservable = new TestObservable();
backupObservable = testBackupObservable.wrap(backupObservable);
RxCallAdapter rxCallAdapter = new RxCallAdapter.Builder()
.addBackoffStrategy(Exponential.init()
.addHttpCode(404)
.addObservable(backupObservable)
.setBase(2)
.setMaxRetries(3)
.build())
.setLoggingEnabled(true)
.build();
GitHub github = createRetrofitInstance(mockWebServer.url("/").toString(),
new RxErrorHandingFactory(rxCallAdapter));
Observable observable = github.repos("square");
TestObserver testObserver = observable.test();
testObserver.awaitTerminalEvent();
testBackupObservable.assertCompleted();
}
CommonBackoffTest.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:RetrofitRxErrorHandler
作者:
评论列表
文章目录