Fix alarm calculator tests

pull/2068/head
Alex Baker 2 years ago
parent 3691975b9d
commit 55a994fcca

@ -10,14 +10,14 @@ import org.tasks.time.DateTimeUtils.withMillisOfDay
import javax.inject.Inject import javax.inject.Inject
class AlarmCalculator( class AlarmCalculator(
private val preferences: Preferences, private val isDefaultDueTimeEnabled: Boolean,
private val random: Random, private val random: Random,
private val defaultTimeProvider: () -> Int, private val defaultDueTime: Int,
){ ){
@Inject @Inject
internal constructor( internal constructor(
preferences: Preferences preferences: Preferences
) : this(preferences, Random(), { preferences.defaultDueTime }) ) : this(preferences.isDefaultDueTimeEnabled, Random(), preferences.defaultDueTime)
fun toAlarmEntry(task: Task, alarm: Alarm): AlarmEntry? { fun toAlarmEntry(task: Task, alarm: Alarm): AlarmEntry? {
val trigger = when (alarm.type) { val trigger = when (alarm.type) {
@ -29,7 +29,7 @@ class AlarmCalculator(
task.hasStartTime() -> task.hasStartTime() ->
task.hideUntil + alarm.time task.hideUntil + alarm.time
task.hasStartDate() -> task.hasStartDate() ->
task.hideUntil.withMillisOfDay(defaultTimeProvider()) + alarm.time task.hideUntil.withMillisOfDay(defaultDueTime) + alarm.time
else -> else ->
AlarmService.NO_ALARM AlarmService.NO_ALARM
} }
@ -37,8 +37,8 @@ class AlarmCalculator(
when { when {
task.hasDueTime() -> task.hasDueTime() ->
task.dueDate + alarm.time task.dueDate + alarm.time
task.hasDueDate() && preferences.isDefaultDueTimeEnabled -> task.hasDueDate() && isDefaultDueTimeEnabled ->
task.dueDate.withMillisOfDay(defaultTimeProvider()) + alarm.time task.dueDate.withMillisOfDay(defaultDueTime) + alarm.time
else -> else ->
AlarmService.NO_ALARM AlarmService.NO_ALARM
} }

@ -14,14 +14,12 @@ import org.tasks.data.TaskDao
import org.tasks.jobs.NotificationQueue import org.tasks.jobs.NotificationQueue
import org.tasks.notifications.NotificationManager import org.tasks.notifications.NotificationManager
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton
/** /**
* Provides operations for working with alerts * Provides operations for working with alerts
* *
* @author Tim Su <tim></tim>@todoroo.com> * @author Tim Su <tim></tim>@todoroo.com>
*/ */
@Singleton
class AlarmService @Inject constructor( class AlarmService @Inject constructor(
private val alarmDao: AlarmDao, private val alarmDao: AlarmDao,
private val jobs: NotificationQueue, private val jobs: NotificationQueue,

@ -46,9 +46,11 @@ class AlarmCalculatorTest {
@Before @Before
fun setUp() { fun setUp() {
random = RandomStub() random = RandomStub()
alarmCalculator = AlarmCalculator(random) { alarmCalculator = AlarmCalculator(
TimeUnit.HOURS.toMillis(13).toInt() isDefaultDueTimeEnabled = true,
} random = random,
defaultDueTime = TimeUnit.HOURS.toMillis(13).toInt(),
)
} }
@Test @Test

Loading…
Cancel
Save