Moviper { public <PresenterType extends ViperPresenter> Observable<PresenterType> getPresenters( final Class<PresenterType> presenterTypeClass) { if (!mConfig.isPresenterAccessUtilEnabled()) throw new PresentersAccessUtilNotEnabled(); return Observable.fromIterable(mPresenters) .filter(presenterTypeClass::isInstance) .map(presenterTypeClass::cast) .subscribeOn(Schedulers.computation()); } private  Moviper(); static Moviper getInstance(); void setConfig(Config config); void register(ViperPresenter presenter); void unregister(ViperPresenter presenter); Observable<PresenterType> getPresenters(
            final Class<PresenterType> presenterTypeClass); Maybe<PresenterType> getPresenterInstance(
            final Class<PresenterType> presenterTypeClass, String name); @VisibleForTesting void unregisterAll();  }
@Test public void getPresenters() throws Exception { }