Add test for shifting without original due date

pull/1196/head
Alex Baker 5 years ago
parent 265373d46c
commit b6ea44be7b

@ -63,14 +63,12 @@ class RepeatTaskHelper @Inject constructor(
task.setDueDateAdjustingHideUntil(newDueDate) task.setDueDateAdjustingHideUntil(newDueDate)
gcalHelper.rescheduleRepeatingTask(task) gcalHelper.rescheduleRepeatingTask(task)
taskDao.save(task) taskDao.save(task)
alarmService.rescheduleAlarms( val previousDueDate =
task.id,
oldDueDate oldDueDate
.takeIf { it > 0 } .takeIf { it > 0 }
// try to guess original due date when no due date was set ?: newDueDate - (computeNextDueDate(task, recurrence, repeatAfterCompletion) - newDueDate)
?: newDueDate - (computeNextDueDate(task, recurrence, repeatAfterCompletion) - newDueDate), alarmService.rescheduleAlarms(task.id, previousDueDate, newDueDate)
newDueDate) localBroadcastManager.broadcastRepeat(task.id, previousDueDate, newDueDate)
localBroadcastManager.broadcastRepeat(task.id, oldDueDate, newDueDate)
} }
} }

@ -15,6 +15,7 @@ import org.junit.Before
import org.junit.Test import org.junit.Test
import org.mockito.InOrder import org.mockito.InOrder
import org.mockito.Mockito import org.mockito.Mockito
import org.tasks.Freeze.Companion.freezeClock
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.makers.TaskMaker.AFTER_COMPLETE import org.tasks.makers.TaskMaker.AFTER_COMPLETE
import org.tasks.makers.TaskMaker.COMPLETION_TIME import org.tasks.makers.TaskMaker.COMPLETION_TIME
@ -180,10 +181,34 @@ class RepeatTaskHelperTest {
task, DateTime(2017, 1, 31, 13, 30, 1), DateTime(2017, 2, 28, 13, 30, 1)) task, DateTime(2017, 1, 31, 13, 30, 1), DateTime(2017, 2, 28, 13, 30, 1))
} }
private fun repeatAndVerify(task: Task, oldDueDate: DateTime, newDueDate: DateTime) = runBlockingTest { @Test
fun testAlarmShiftWithNoDueDate() {
val task = newTask(
with(ID, 1L),
with(RRULE, RRule("RRULE:FREQ=DAILY"))
)
freezeClock {
repeatAndVerify(
task,
Task.createDueDate(
Task.URGENCY_SPECIFIC_DAY,
DateTime().millis
),
Task.createDueDate(
Task.URGENCY_SPECIFIC_DAY,
DateTime().plusDays(1).millis
)
)
}
}
private fun repeatAndVerify(task: Task, oldDueDate: DateTime, newDueDate: DateTime) =
repeatAndVerify(task, oldDueDate.millis, newDueDate.millis)
private fun repeatAndVerify(task: Task, oldDueDate: Long, newDueDate: Long) = runBlockingTest {
helper.handleRepeat(task) helper.handleRepeat(task)
mocks.verify(gCalHelper).rescheduleRepeatingTask(task) mocks.verify(gCalHelper).rescheduleRepeatingTask(task)
mocks.verify(alarmService).rescheduleAlarms(1, oldDueDate.millis, newDueDate.millis) mocks.verify(alarmService).rescheduleAlarms(1, oldDueDate, newDueDate)
mocks.verify(localBroadcastManager).broadcastRepeat(1, oldDueDate.millis, newDueDate.millis) mocks.verify(localBroadcastManager).broadcastRepeat(1, oldDueDate, newDueDate)
} }
} }
Loading…
Cancel
Save