Fix tests

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

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

@ -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.date.DateTimeUtils
import org.tasks.makers.Maker.make
import org.tasks.repeats.RecurrenceUtils.newRecur
import org.tasks.time.DateTime
object TaskMaker {
@ -80,7 +81,12 @@ object TaskMaker {
task.reminderLast = reminderLast.millis
}
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.isCollapsed = lookup.valueOf(COLLAPSED, false)

@ -94,13 +94,6 @@ class ThunderbirdTests {
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
fun dontTruncateTimeFromUntil() {
val (task, caldavTask, remote) = setup("thunderbird/repeat_until_date_time.txt")

Loading…
Cancel
Save