package com.byoutline.kickmaterial.espressohelpers;
import android.content.SharedPreferences;
import com.byoutline.kickmaterial.dagger.AppComponent;
import com.byoutline.kickmaterial.dagger.AppModule;
import com.byoutline.kickmaterial.dagger.DaggerAppComponent;
import com.byoutline.kickmaterial.fragments.ProjectsListFragment;
import com.byoutline.secretsauce.BaseApp;
/**
* Methods returning test {@link AppComponent}s with changed injects.
*
* @author Sebastian Kacprzak <sebastian.kacprzak at byoutline.com>
*/
final class TestComponents {
private TestComponents() {
}
static AppComponent getFirstRunAppComponent(BaseApp app) {
return getAppComponent(app, getFirstRunSharedPrefs(app));
}
static AppComponent getNextRunAppComponent(BaseApp app) {
return getAppComponent(app, getNextRunSharedPrefs(app));
}
private static AppComponent getAppComponent(final BaseApp app, final SharedPreferences sharedPrefs) {
return DaggerAppComponent.builder()
.appModule(new AppModule(app) {
@Override
public SharedPreferences provideSharedPrefs() {
return sharedPrefs;
}
})
.build();
}
private static SharedPreferences getFirstRunSharedPrefs(BaseApp app) {
final SharedPreferences sharedPrefs = app.getSharedPrefs();
sharedPrefs.edit().clear().apply();
return sharedPrefs;
}
private static SharedPreferences getNextRunSharedPrefs(BaseApp app) {
final SharedPreferences sharedPrefs = app.getSharedPrefs();
sharedPrefs.edit().putBoolean(ProjectsListFragment.PREFS_SHOW_HEADER, false).apply();
return sharedPrefs;
}
}