Fix tests

pull/1952/head
Alex Baker 3 years ago
parent 60820ab3c9
commit e450e262a5

@ -1,5 +1,7 @@
package org.tasks.ui.editviewmodel package org.tasks.ui.editviewmodel
import androidx.lifecycle.SavedStateHandle
import com.todoroo.astrid.activity.TaskEditFragment
import com.todoroo.astrid.alarms.AlarmService import com.todoroo.astrid.alarms.AlarmService
import com.todoroo.astrid.dao.Database import com.todoroo.astrid.dao.Database
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
@ -12,11 +14,11 @@ import com.todoroo.astrid.timers.TimerPlugin
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import org.junit.Before
import org.tasks.calendars.CalendarEventProvider import org.tasks.calendars.CalendarEventProvider
import org.tasks.data.AlarmDao import org.tasks.data.AlarmDao
import org.tasks.data.LocationDao import org.tasks.data.LocationDao
import org.tasks.data.TagDataDao import org.tasks.data.TagDataDao
import org.tasks.data.UserActivityDao
import org.tasks.injection.InjectingTestCase import org.tasks.injection.InjectingTestCase
import org.tasks.location.GeofenceApi import org.tasks.location.GeofenceApi
import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.DefaultFilterProvider
@ -41,42 +43,39 @@ open class BaseTaskEditViewModelTest : InjectingTestCase() {
@Inject lateinit var locationDao: LocationDao @Inject lateinit var locationDao: LocationDao
@Inject lateinit var tagDataDao: TagDataDao @Inject lateinit var tagDataDao: TagDataDao
@Inject lateinit var alarmDao: AlarmDao @Inject lateinit var alarmDao: AlarmDao
@Inject lateinit var userActivityDao: UserActivityDao
protected lateinit var viewModel: TaskEditViewModel protected lateinit var viewModel: TaskEditViewModel
@Before protected fun setup(task: Task) = runBlocking {
override fun setUp() {
super.setUp()
viewModel = TaskEditViewModel( viewModel = TaskEditViewModel(
context, context,
taskDao, SavedStateHandle().apply {
taskDeleter, set(TaskEditFragment.EXTRA_TASK, task)
timerPlugin, set(TaskEditFragment.EXTRA_LIST, defaultFilterProvider.getList(task))
PermissivePermissionChecker(context), set(TaskEditFragment.EXTRA_LOCATION, locationDao.getLocation(task, preferences))
calendarEventProvider, set(TaskEditFragment.EXTRA_TAGS, tagDataDao.getTags(task))
gCalHelper, set(TaskEditFragment.EXTRA_ALARMS, alarmDao.getAlarms(task))
taskMover, },
db.locationDao, taskDao,
geofenceApi, taskDeleter,
db.tagDao, timerPlugin,
db.tagDataDao, PermissivePermissionChecker(context),
preferences, calendarEventProvider,
db.googleTaskDao, gCalHelper,
db.caldavDao, taskMover,
taskCompleter, db.locationDao,
alarmService, geofenceApi,
db.tagDao,
db.tagDataDao,
preferences,
db.googleTaskDao,
db.caldavDao,
taskCompleter,
alarmService,
MutableSharedFlow(), MutableSharedFlow(),
MutableSharedFlow(), MutableSharedFlow(),
) userActivityDao = userActivityDao,
}
protected fun setup(task: Task) = runBlocking {
viewModel.setup(
task,
defaultFilterProvider.getList(task),
locationDao.getLocation(task, preferences),
tagDataDao.getTags(task),
alarmDao.getAlarms(task)
) )
} }

@ -1,44 +0,0 @@
package org.tasks.ui.editviewmodel
import com.natpryce.makeiteasy.MakeItEasy.with
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import kotlinx.coroutines.runBlocking
import org.junit.Assert.assertEquals
import org.junit.Test
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker
import org.tasks.makers.TaskMaker.newTask
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class RepeatTests : BaseTaskEditViewModelTest() {
@Test
fun changeRepeatAfterCompletion() = runBlocking {
val task = newTask(with(TaskMaker.RECUR, "FREQ=DAILY;INTERVAL=1"))
setup(task)
viewModel.repeatAfterCompletion = true
save()
assertEquals(
"FREQ=DAILY;INTERVAL=1;FROM=COMPLETION",
taskDao.fetch(task.id)!!.recurrence)
}
@Test
fun removeRepeatAfterCompletion() = runBlocking {
val task = newTask()
task.recurrence = "RRULE:FREQ=DAILY;INTERVAL=1;FROM=COMPLETION"
setup(task)
viewModel.repeatAfterCompletion = false
save()
assertEquals(
"RRULE:FREQ=DAILY;INTERVAL=1",
taskDao.fetch(task.id)!!.recurrence)
}
}

@ -11,6 +11,7 @@ import com.todoroo.astrid.data.Task.Companion.NO_UUID
import org.tasks.Strings import org.tasks.Strings
import org.tasks.date.DateTimeUtils import org.tasks.date.DateTimeUtils
import org.tasks.makers.Maker.make import org.tasks.makers.Maker.make
import org.tasks.repeats.RecurrenceUtils.newRecur
import org.tasks.time.DateTime import org.tasks.time.DateTime
object TaskMaker { object TaskMaker {
@ -80,7 +81,12 @@ object TaskMaker {
task.reminderLast = reminderLast.millis task.reminderLast = reminderLast.millis
} }
lookup.valueOf(RECUR, null as String?)?.let { lookup.valueOf(RECUR, null as String?)?.let {
task.setRecurrence(it, lookup.valueOf(AFTER_COMPLETE, false)) task.setRecurrence(newRecur(it))
}
task.repeatFrom = if (lookup.valueOf(AFTER_COMPLETE, false)) {
Task.RepeatFrom.COMPLETION_DATE
} else {
Task.RepeatFrom.DUE_DATE
} }
task.notes = lookup.valueOf(DESCRIPTION, null as String?) task.notes = lookup.valueOf(DESCRIPTION, null as String?)
task.isCollapsed = lookup.valueOf(COLLAPSED, false) task.isCollapsed = lookup.valueOf(COLLAPSED, false)

@ -94,13 +94,6 @@ class ThunderbirdTests {
assertEquals(Task.Priority.HIGH, vtodo("thunderbird/priority_high.txt").priority) assertEquals(Task.Priority.HIGH, vtodo("thunderbird/priority_high.txt").priority)
} }
@Test
fun getRepeatUntil() {
assertEquals(
DateTime(2020, 7, 31, 11, 0, 0, 0).millis,
vtodo("thunderbird/repeat_until_date_time.txt").repeatUntil)
}
@Test @Test
fun dontTruncateTimeFromUntil() { fun dontTruncateTimeFromUntil() {
val (task, caldavTask, remote) = setup("thunderbird/repeat_until_date_time.txt") val (task, caldavTask, remote) = setup("thunderbird/repeat_until_date_time.txt")

Loading…
Cancel
Save