From 3fb6848df6d829e50230320ec020987e01e87c15 Mon Sep 17 00:00:00 2001 From: Mihai-Cristian Condrea Date: Sun, 14 Sep 2025 11:21:10 +0300 Subject: [PATCH] test: verify daily tip selection --- .../source/DefaultHomeLocalDataSourceTest.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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/DefaultHomeLocalDataSourceTest.java index bde69e70..d6e6651e 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/DefaultHomeLocalDataSourceTest.java @@ -2,6 +2,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.when; import android.content.Context; @@ -10,6 +11,7 @@ import com.d4rk.androidtutorials.java.R; import org.junit.Test; +import org.mockito.MockedStatic; public class DefaultHomeLocalDataSourceTest { @@ -22,14 +24,21 @@ public void playStoreUrlsFormattedCorrectly() { } @Test - public void dailyTipUsesEpochDayIndex() { + public void dailyTipReturnsExpectedEntriesForTimestamps() { String[] tips = {"tip1", "tip2", "tip3"}; Context context = mockContextWithTips(tips); DefaultHomeLocalDataSource dataSource = new DefaultHomeLocalDataSource(context); - long daysSinceEpoch = System.currentTimeMillis() / (24L * 60L * 60L * 1000L); - int expectedIndex = (int) (daysSinceEpoch % tips.length); - assertEquals(tips[expectedIndex], dataSource.getDailyTip()); + long dayMs = 24L * 60L * 60L * 1000L; + + try (MockedStatic mocked = mockStatic(System.class)) { + mocked.when(System::currentTimeMillis).thenReturn(0L, dayMs, 2 * dayMs, 3 * dayMs); + + assertEquals("tip1", dataSource.getDailyTip()); + assertEquals("tip2", dataSource.getDailyTip()); + assertEquals("tip3", dataSource.getDailyTip()); + assertEquals("tip1", dataSource.getDailyTip()); + } } private static Context mockContextWithTips(String[] tips) {