diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSource.java b/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSource.java index 4975e5a1..71b4ccfa 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSource.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSource.java @@ -9,6 +9,8 @@ */ public class DefaultHomeLocalDataSource implements HomeLocalDataSource { + private static final String PLAY_STORE_BASE_URL = "https://play.google.com/store/apps/details?id="; + private final Context context; public DefaultHomeLocalDataSource(Context context) { @@ -17,12 +19,15 @@ public DefaultHomeLocalDataSource(Context context) { @Override public String getPlayStoreUrl() { - return "https://play.google.com/store/apps/details?id=com.d4rk.androidtutorials"; + return PLAY_STORE_BASE_URL; } @Override public String getAppPlayStoreUrl(String packageName) { - return "https://play.google.com/store/apps/details?id=" + packageName; + if (packageName == null) { + return PLAY_STORE_BASE_URL; + } + return PLAY_STORE_BASE_URL + packageName; } @Override diff --git a/app/src/test/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSourceTest.java b/app/src/test/java/com/d4rk/androidtutorials/java/data/source/local/DefaultHomeLocalDataSourceTest.java similarity index 50% rename from app/src/test/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSourceTest.java rename to app/src/test/java/com/d4rk/androidtutorials/java/data/source/local/DefaultHomeLocalDataSourceTest.java index bde69e70..77fcff12 100644 --- a/app/src/test/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSourceTest.java +++ b/app/src/test/java/com/d4rk/androidtutorials/java/data/source/local/DefaultHomeLocalDataSourceTest.java @@ -1,4 +1,4 @@ -package com.d4rk.androidtutorials.java.data.source; +package com.d4rk.androidtutorials.java.data.source.local; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; @@ -8,17 +8,45 @@ import android.content.res.Resources; import com.d4rk.androidtutorials.java.R; +import com.d4rk.androidtutorials.java.data.source.DefaultHomeLocalDataSource; import org.junit.Test; public class DefaultHomeLocalDataSourceTest { + private static final String PLAY_STORE_BASE_URL = "https://play.google.com/store/apps/details?id="; + + @Test + public void getPlayStoreUrl_returnsBaseUrl() { + DefaultHomeLocalDataSource dataSource = + new DefaultHomeLocalDataSource(mockContextWithTips(new String[]{"tip"})); + + assertEquals(PLAY_STORE_BASE_URL, dataSource.getPlayStoreUrl()); + } + + @Test + public void getAppPlayStoreUrl_appendsPackageName() { + DefaultHomeLocalDataSource dataSource = + new DefaultHomeLocalDataSource(mockContextWithTips(new String[]{"tip"})); + + assertEquals(PLAY_STORE_BASE_URL + "com.example.app", + dataSource.getAppPlayStoreUrl("com.example.app")); + } + + @Test + public void getAppPlayStoreUrl_allowsEmptyPackageName() { + DefaultHomeLocalDataSource dataSource = + new DefaultHomeLocalDataSource(mockContextWithTips(new String[]{"tip"})); + + assertEquals(PLAY_STORE_BASE_URL, dataSource.getAppPlayStoreUrl("")); + } + @Test - public void playStoreUrlsFormattedCorrectly() { + public void getAppPlayStoreUrl_handlesNullPackageName() { DefaultHomeLocalDataSource dataSource = new DefaultHomeLocalDataSource(mockContextWithTips(new String[]{"tip"})); - assertEquals("https://play.google.com/store/apps/details?id=com.d4rk.androidtutorials", dataSource.getPlayStoreUrl()); - assertEquals("https://play.google.com/store/apps/details?id=pkg", dataSource.getAppPlayStoreUrl("pkg")); + + assertEquals(PLAY_STORE_BASE_URL, dataSource.getAppPlayStoreUrl(null)); } @Test