package com.appsimobile.appsii; import android.accounts.AccountManager; import android.app.ActivityManager; import android.app.Application; import android.app.KeyguardManager; import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetManager; import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.content.res.Resources; import android.location.LocationManager; import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; import android.os.Build; import android.os.UserManager; import android.os.Vibrator; import android.telephony.TelephonyManager; import android.test.mock.MockContentResolver; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import com.appsimobile.appsii.appwidget.AppWidgetIconCache; import com.appsimobile.appsii.appwidget.AppsiiAppWidgetHost; import com.appsimobile.appsii.compat.AppWidgetManagerCompat; import com.appsimobile.appsii.compat.LauncherAppsCompat; import com.appsimobile.appsii.compat.UserManagerCompat; import com.appsimobile.appsii.iab.FeatureManager; import com.appsimobile.appsii.iab.FeatureManagerFactory; import com.appsimobile.appsii.iab.FeatureManagerHelper; import com.appsimobile.appsii.module.home.YahooLocationChooserDialogFragment; import com.appsimobile.appsii.module.home.config.HomeItemConfiguration; import com.appsimobile.appsii.module.home.config.HomeItemConfigurationHelper; import com.appsimobile.appsii.permissions.PermissionUtils; import com.appsimobile.appsii.plugins.IconCache; import com.appsimobile.appsii.preference.ObfuscatedPreferences; import com.appsimobile.appsii.preference.PreferenceHelper; import org.mockito.Mockito; import java.util.TimeZone; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import static com.appsimobile.appsii.ThemingUtils.DEFAULT_APPSII_THEME; import static com.appsimobile.appsii.ThemingUtils.PREF_APPSII_THEME; /** * Created by nmartens on 12/01/16. */ @Module public class MockApplicationModule { private final Application mApplication; public MockApplicationModule(Application app) { this.mApplication = app; } @Singleton @Provides Context provideApplicationContext() { return mApplication; } @Provides @Singleton SharedPreferences provideSharedPreferences() { SharedPreferences result = Mockito.mock(SharedPreferences.class); Mockito.when(result.getString(PREF_APPSII_THEME, DEFAULT_APPSII_THEME)) .thenReturn(DEFAULT_APPSII_THEME); return result; } @Provides @Singleton ObfuscatedPreferences provideObfuscatedPreferencess() { return Mockito.mock(ObfuscatedPreferences.class); } @Provides TimeZone provideDefaultTimeZone() { return TimeZone.getTimeZone("UTC"); } @Provides @Singleton AnalyticsManager provideAnalyticsManager() { return Mockito.mock(AnalyticsManager.class); } @Provides @Singleton LoaderManagerImpl provideLoaderManagerImpl() { return new LoaderManagerImpl("Appsi", mApplication, false); } @Provides @Singleton PreferenceHelper providePreferenceHelper(Context context, SharedPreferences preferences) { return new PreferenceHelper(context, preferences); } @Provides @Singleton AppsiiAppWidgetHost provideAppsiiAppWidgetHost(Context context) { return new AppsiiAppWidgetHost(context, AppsiApplication.APPWIDGET_HOST_ID); } @Provides @Singleton AppWidgetManager provideAppWidgetManager(Context context) { return AppWidgetManager.getInstance(context); } @Provides @Singleton AppWidgetHost provideAppWidgetHost(AppsiiAppWidgetHost host) { return host; } @Provides @Singleton HomeItemConfiguration provideHomeItemConfiguration() { return Mockito.mock(HomeItemConfigurationHelper.class); } @Provides PackageManager providePackageManager(Context context) { return context.getPackageManager(); } @Provides @Singleton HomeItemConfigurationHelper provideHomeItemConfigurationHelper(HomeItemConfiguration c) { return (HomeItemConfigurationHelper) c; } @Provides @Singleton FeatureManagerHelper provideFeatureManagerHelper() { return Mockito.mock(FeatureManagerHelper.class); } @Provides @Singleton FeatureManager provideFeatureManager(Context context) { return FeatureManagerFactory.getFeatureManager(context); } @Singleton @Provides ConnectivityManager provideConnectivityManager() { return Mockito.mock(ConnectivityManager.class); } @Singleton @Provides WindowManager provideWindowManager() { return (WindowManager) mApplication.getSystemService(Context.WINDOW_SERVICE); // return Mockito.mock(WindowManager.class); } @Singleton @Provides InputMethodManager provideInputMethodManager() { return Mockito.mock(InputMethodManager.class); } @Singleton @Provides TelephonyManager provideTelephonyManager() { return Mockito.mock(TelephonyManager.class); } @Singleton @Provides WifiManager provideWifiManager() { return Mockito.mock(WifiManager.class); } @Singleton @Provides AudioManager provideAudioManager() { return Mockito.mock(AudioManager.class); } @Singleton @Provides AccountManager provideAccountManager() { return Mockito.mock(AccountManager.class); } @Singleton @Provides KeyguardManager provideKeyguardManager() { return Mockito.mock(KeyguardManager.class); } @Singleton @Provides UserManager provideUserManager() { return Mockito.mock(UserManager.class); } @Singleton @Provides ActivityManager provideActivityManager() { return Mockito.mock(ActivityManager.class); } @Singleton @Provides Vibrator provideVibrator() { return Mockito.mock(Vibrator.class); } @Singleton @Provides LauncherApps provideLauncherApps() { return Mockito.mock(LauncherApps.class); } @Singleton @Provides LocationManager provideLocationManager() { return Mockito.mock(LocationManager.class); } @Singleton @Provides ContentResolver provideContentResolver(Context context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { return new MockContentResolver(context); } return Mockito.mock(ContentResolver.class); } @Provides Resources provideResources(Context context) { return context.getResources(); } @Provides @Singleton UserManagerCompat provideUserManagerCompat() { return Mockito.mock(UserManagerCompat.class); } @Provides @Singleton LauncherAppsCompat provideLauncherAppsCompat() { return Mockito.mock(LauncherAppsCompat.class); } @Provides @Singleton AppWidgetManagerCompat provideAppWidgetManagerCompat() { return Mockito.mock(AppWidgetManagerCompat.class); } @Provides @Singleton IconCache provideIconCache() { return Mockito.mock(IconCache.class); } @Provides @Singleton AppWidgetIconCache provideAppWidgetIconCache() { return Mockito.mock(AppWidgetIconCache.class); } @Singleton @Provides PermissionUtils providePermissionUtils() { return Mockito.mock(PermissionUtils.class); } @Provides @Singleton HomeItemConfigurationHelper.HomeItemConfigurationLoader provideHomeItemConfigurationLoader() { return Mockito.mock(HomeItemConfigurationHelper.HomeItemConfigurationLoader.class); } @Singleton @Provides YahooLocationChooserDialogFragment.LocationUpdateHelper provideLocationUpdateHelper() { return Mockito.mock(YahooLocationChooserDialogFragment.LocationUpdateHelper.class); } }