package com.nilhcem.bblfr.core.utils; import android.content.Context; import com.nilhcem.bblfr.BuildConfig; import org.junit.Rule; import org.junit.Test; import org.mockito.Answers; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.when; public class AppUtilsTest { @Rule public MockitoRule rule = MockitoJUnit.rule(); @Mock(answer = Answers.RETURNS_DEEP_STUBS) Context context; @Test public void should_format_into_readable_version_name_and_code() { // Given String expected = BuildConfig.VERSION_NAME + " (#" + BuildConfig.VERSION_CODE + ")"; // When String version = AppUtils.getVersion(); // Then assertThat(version).isEqualTo(expected); } @Test public void should_return_true_when_app_was_installed_from_google_play() { // Given String packageName = "com.nilhcem.bblfr"; String playStorePackageName = "com.android.vending"; when(context.getPackageName()).thenReturn(packageName); when(context.getPackageManager().getInstallerPackageName(packageName)).thenReturn(playStorePackageName); // When boolean result = AppUtils.wasInstalledFromGooglePlay(context); // Then assertThat(result).isTrue(); } @Test public void should_return_false_when_app_was_not_installed_from_google_play() { // Given String playStorePackageName = "com.amazon.venezia"; when(context.getPackageManager().getInstallerPackageName(anyString())).thenReturn(playStorePackageName); // When boolean result = AppUtils.wasInstalledFromGooglePlay(context); // Then assertThat(result).isFalse(); } }