CommonBackoffTest.java 文件源码

java
阅读 19 收藏 0 点赞 0 评论 0

项目:RetrofitRxErrorHandler 作者:
/**
 * Test shows the usage of backup `Observable`. Checks if successful response is passed to
 * `Subscriber` even if backup `Observable` is invoked and it does not emits any elements.
 * <br>
 * Test created by Robert Zagorski on 19.10.2016
 */
@Test
public void testBackupObservable5() throws Exception {
    mockWebServer.setDispatcher(new Dispatcher() {
        @Override
        public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
            if (mockWebServer.getRequestCount() == 1) {
                return new MockResponse().setResponseCode(404);
            } else if (mockWebServer.getRequestCount() > 1) {
                return MockWebServerUtils.getSuccessfulResponse();
            }
            return new MockResponse().setResponseCode(500);
        }
    });

    Observable<Boolean> backupObservable = Observable.empty();

    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();
    testObserver.assertComplete();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号