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.
tasks/src/androidTest/java/com/todoroo/astrid/reminders/NotifyAtDeadlineTest.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));
}
}