CommonBackoffTest.java 文件源码

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

项目:RetrofitRxErrorHandler 作者:
/**
 * 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();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号