mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.6 KiB
Java
75 lines
2.6 KiB
Java
package com.todoroo.astrid.reminders;
|
|
|
|
import android.test.AndroidTestCase;
|
|
|
|
import com.todoroo.astrid.data.Task;
|
|
|
|
import org.tasks.preferences.Preferences;
|
|
import org.tasks.scheduling.AlarmManager;
|
|
import org.tasks.time.DateTime;
|
|
|
|
import static com.todoroo.astrid.reminders.ReminderService.NO_ALARM;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.tasks.Freeze.freezeAt;
|
|
import static org.tasks.Freeze.thaw;
|
|
|
|
public class NotifyAtDeadlineTest extends AndroidTestCase {
|
|
|
|
private ReminderService reminderService;
|
|
|
|
@Override
|
|
public void setUp() {
|
|
Preferences preferences = new Preferences(getContext(), null);
|
|
reminderService = new ReminderService(getContext(), preferences, mock(AlarmManager.class));
|
|
freezeAt(new DateTime(2014, 1, 24, 17, 23, 37));
|
|
}
|
|
|
|
@Override
|
|
public void tearDown() {
|
|
thaw();
|
|
}
|
|
|
|
public void testNoReminderWhenNoDueDate() {
|
|
Task task = new Task() {{
|
|
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
|
|
}};
|
|
assertEquals(NO_ALARM, reminderService.calculateNextDueDateReminder(task));
|
|
}
|
|
|
|
public void testNoReminderWhenNotifyAtDeadlineFlagNotSet() {
|
|
Task task = new Task() {{
|
|
setDueDate(URGENCY_SPECIFIC_DAY_TIME, new DateTime(2014, 1, 24, 19, 23).getMillis());
|
|
}};
|
|
assertEquals(NO_ALARM, reminderService.calculateNextDueDateReminder(task));
|
|
}
|
|
|
|
public void testScheduleReminderAtDueTime() {
|
|
final DateTime dueDate = new DateTime(2014, 1, 24, 19, 23);
|
|
Task task = new Task() {{
|
|
setDueDate(URGENCY_SPECIFIC_DAY_TIME, dueDate.getMillis());
|
|
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
|
|
}};
|
|
assertEquals(dueDate.plusSeconds(1).getMillis(), reminderService.calculateNextDueDateReminder(task));
|
|
}
|
|
|
|
public void testScheduleReminderAtDefaultDueTime() {
|
|
final DateTime dueDate = new DateTime(2015, 12, 29, 12, 0);
|
|
Task task = new Task() {{
|
|
setDueDate(URGENCY_SPECIFIC_DAY, dueDate.getMillis());
|
|
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
|
|
}};
|
|
assertEquals(dueDate.withHourOfDay(18).getMillis(),
|
|
reminderService.calculateNextDueDateReminder(task));
|
|
}
|
|
|
|
public void testNoReminderIfAlreadyRemindedPastDueDate() {
|
|
final DateTime dueDate = new DateTime(2015, 12, 29, 19, 23);
|
|
Task task = new Task() {{
|
|
setDueDate(URGENCY_SPECIFIC_DAY_TIME, dueDate.getMillis());
|
|
setReminderLast(dueDate.plusSeconds(1).getMillis());
|
|
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
|
|
}};
|
|
assertEquals(NO_ALARM, reminderService.calculateNextDueDateReminder(task));
|
|
}
|
|
}
|