package com.hitherejoe.androidboilerplate.runner;
import android.os.Bundle;
import android.support.test.espresso.Espresso;
import com.hitherejoe.androidboilerplate.util.RxIdlingExecutionHook;
import com.hitherejoe.androidboilerplate.util.RxIdlingResource;
import rx.plugins.RxJavaPlugins;
/**
* Runner that registers a Espresso Indling resource that handles waiting for
* RxJava Observables to finish.
* WARNING - Using this runner will block the tests if the application uses long-lived hot
* Observables such us event buses, etc.
*/
public class RxAndroidJUnitRunner extends UnlockDeviceAndroidJUnitRunner {
@Override
public void onCreate(Bundle arguments) {
super.onCreate(arguments);
RxIdlingResource rxIdlingResource = new RxIdlingResource();
RxJavaPlugins.getInstance()
.registerObservableExecutionHook(new RxIdlingExecutionHook(rxIdlingResource));
Espresso.registerIdlingResources(rxIdlingResource);
}
}