package com.hitherejoe.watchtower.util; import android.content.Context; import com.hitherejoe.watchtower.WatchTowerApplication; import com.hitherejoe.watchtower.data.DataManager; import com.hitherejoe.watchtower.data.remote.WatchTowerService; import com.hitherejoe.watchtower.injection.component.DaggerDataManagerTestComponent; import com.hitherejoe.watchtower.injection.component.TestComponent; import com.hitherejoe.watchtower.injection.module.DataManagerTestModule; /** * Extension of DataManager to be used on a testing environment. * It uses DataManagerTestComponent to inject dependencies that are different to the * normal runtime ones. e.g. mock objects etc. * It also exposes some helpers like the DatabaseHelper or the Retrofit service that are helpful * during testing. */ public class TestDataManager extends DataManager { public TestDataManager(Context context) { super(context); } @Override protected void injectDependencies(Context context) { TestComponent testComponent = (TestComponent) WatchTowerApplication.get(context).getComponent(); DaggerDataManagerTestComponent.builder() .testComponent(testComponent) .dataManagerTestModule(new DataManagerTestModule(context)) .build() .inject(this); } public WatchTowerService getWatchTowerService() { return mWatchTowerService; } }