22
33import static org .junit .Assert .assertEquals ;
44import static org .mockito .Mockito .mock ;
5+ import static org .mockito .Mockito .mockStatic ;
56import static org .mockito .Mockito .when ;
67
78import android .content .Context ;
1011import com .d4rk .androidtutorials .java .R ;
1112
1213import org .junit .Test ;
14+ import org .mockito .MockedStatic ;
1315
1416public 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