Skip to content

Commit 3fb6848

Browse files
test: verify daily tip selection
1 parent c699913 commit 3fb6848

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

app/src/test/java/com/d4rk/androidtutorials/java/data/source/DefaultHomeLocalDataSourceTest.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.junit.Assert.assertEquals;
44
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.mockStatic;
56
import static org.mockito.Mockito.when;
67

78
import android.content.Context;
@@ -10,6 +11,7 @@
1011
import com.d4rk.androidtutorials.java.R;
1112

1213
import org.junit.Test;
14+
import org.mockito.MockedStatic;
1315

1416
public class DefaultHomeLocalDataSourceTest {
1517

@@ -22,14 +24,21 @@ public void playStoreUrlsFormattedCorrectly() {
2224
}
2325

2426
@Test
25-
public void dailyTipUsesEpochDayIndex() {
27+
public void dailyTipReturnsExpectedEntriesForTimestamps() {
2628
String[] tips = {"tip1", "tip2", "tip3"};
2729
Context context = mockContextWithTips(tips);
2830
DefaultHomeLocalDataSource dataSource = new DefaultHomeLocalDataSource(context);
2931

30-
long daysSinceEpoch = System.currentTimeMillis() / (24L * 60L * 60L * 1000L);
31-
int expectedIndex = (int) (daysSinceEpoch % tips.length);
32-
assertEquals(tips[expectedIndex], dataSource.getDailyTip());
32+
long dayMs = 24L * 60L * 60L * 1000L;
33+
34+
try (MockedStatic<System> mocked = mockStatic(System.class)) {
35+
mocked.when(System::currentTimeMillis).thenReturn(0L, dayMs, 2 * dayMs, 3 * dayMs);
36+
37+
assertEquals("tip1", dataSource.getDailyTip());
38+
assertEquals("tip2", dataSource.getDailyTip());
39+
assertEquals("tip3", dataSource.getDailyTip());
40+
assertEquals("tip1", dataSource.getDailyTip());
41+
}
3342
}
3443

3544
private static Context mockContextWithTips(String[] tips) {

0 commit comments

Comments
 (0)