Fix ReminderSchedulerTest

pull/542/head
Alinson S. Xavier 6 years ago
parent aadfac68cd
commit 323c98edb8

@ -21,6 +21,7 @@ package org.isoron.uhabits.core.reminders;
import org.isoron.uhabits.core.*;
import org.isoron.uhabits.core.models.*;
import org.isoron.uhabits.core.preferences.*;
import org.isoron.uhabits.core.utils.*;
import org.junit.*;
import org.junit.runner.*;
@ -29,11 +30,16 @@ import org.mockito.junit.*;
import java.util.*;
import static org.isoron.uhabits.core.utils.DateUtils.applyTimezone;
import static org.isoron.uhabits.core.utils.DateUtils.removeTimezone;
import static org.isoron.uhabits.core.utils.DateUtils.setFixedLocalTime;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class ReminderSchedulerTest extends BaseUnitTest
{
private final long habitId = 10L;
private Habit habit;
private ReminderScheduler reminderScheduler;
@ -41,15 +47,19 @@ public class ReminderSchedulerTest extends BaseUnitTest
@Mock
private ReminderScheduler.SystemScheduler sys;
@Mock
private WidgetPreferences widgetPreferences;
@Before
@Override
public void setUp() throws Exception
{
super.setUp();
habit = fixtures.createEmptyHabit();
habit.id = habitId;
reminderScheduler =
new ReminderScheduler(commandRunner, habitList, sys);
new ReminderScheduler(commandRunner, habitList, sys, widgetPreferences);
DateUtils.setFixedTimeZone(TimeZone.getTimeZone("GMT-4"));
}
@ -58,7 +68,7 @@ public class ReminderSchedulerTest extends BaseUnitTest
public void testScheduleAll()
{
long now = unixTime(2015, 1, 26, 13, 0);
DateUtils.setFixedLocalTime(now);
setFixedLocalTime(now);
Habit h1 = fixtures.createEmptyHabit();
Habit h2 = fixtures.createEmptyHabit();
@ -88,11 +98,33 @@ public class ReminderSchedulerTest extends BaseUnitTest
scheduleAndVerify(atTime, expectedCheckmarkTime, atTime);
}
@Test
public void testSchedule_withSnooze()
{
long now = removeTimezone(unixTime(2015, 1, 1, 15, 0));
setFixedLocalTime(now);
long snoozeTimeInFuture = unixTime(2015, 1, 1, 21, 0);
long snoozeTimeInPast = unixTime(2015, 1, 1, 7, 0);
long regularReminderTime = applyTimezone(unixTime(2015, 1, 2, 8, 30));
long todayCheckmarkTime = unixTime(2015, 1, 1, 0, 0);
long tomorrowCheckmarkTime = unixTime(2015, 1, 2, 0, 0);
habit.setReminder(new Reminder(8, 30, WeekdayList.EVERY_DAY));
when(widgetPreferences.getSnoozeTime(habitId)).thenReturn(snoozeTimeInFuture);
reminderScheduler.schedule(habit);
verify(sys).scheduleShowReminder(snoozeTimeInFuture, habit, todayCheckmarkTime);
when(widgetPreferences.getSnoozeTime(habitId)).thenReturn(snoozeTimeInPast);
reminderScheduler.schedule(habit);
verify(sys).scheduleShowReminder(regularReminderTime, habit, tomorrowCheckmarkTime);
}
@Test
public void testSchedule_laterToday()
{
long now = unixTime(2015, 1, 26, 6, 30);
DateUtils.setFixedLocalTime(now);
setFixedLocalTime(now);
long expectedCheckmarkTime = unixTime(2015, 1, 26, 0, 0);
long expectedReminderTime = unixTime(2015, 1, 26, 12, 30);
@ -105,7 +137,7 @@ public class ReminderSchedulerTest extends BaseUnitTest
public void testSchedule_tomorrow()
{
long now = unixTime(2015, 1, 26, 13, 0);
DateUtils.setFixedLocalTime(now);
setFixedLocalTime(now);
long expectedCheckmarkTime = unixTime(2015, 1, 27, 0, 0);
long expectedReminderTime = unixTime(2015, 1, 27, 12, 30);

Loading…
Cancel
Save