mirror of https://github.com/tasks/tasks
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.
103 lines
3.6 KiB
Kotlin
103 lines
3.6 KiB
Kotlin
package com.todoroo.astrid.service
|
|
|
|
import com.todoroo.astrid.api.PermaSql.VALUE_EOD
|
|
import com.todoroo.astrid.api.PermaSql.VALUE_EOD_NEXT_WEEK
|
|
import com.todoroo.astrid.api.PermaSql.VALUE_EOD_TOMORROW
|
|
import org.tasks.data.entity.Task
|
|
import org.tasks.data.entity.Task.Companion.DUE_DATE
|
|
import org.tasks.data.entity.Task.Companion.HIDE_UNTIL
|
|
import org.tasks.data.entity.Task.Companion.URGENCY_SPECIFIC_DAY
|
|
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.R
|
|
import org.tasks.SuspendFreeze.Companion.freezeAt
|
|
import org.tasks.data.createDueDate
|
|
import org.tasks.injection.InjectingTestCase
|
|
import org.tasks.injection.ProductionModule
|
|
import org.tasks.preferences.Preferences
|
|
import org.tasks.time.DateTime
|
|
import javax.inject.Inject
|
|
|
|
@UninstallModules(ProductionModule::class)
|
|
@HiltAndroidTest
|
|
class TaskCreatorTest : InjectingTestCase() {
|
|
@Inject lateinit var preferences: Preferences
|
|
@Inject lateinit var taskCreator: TaskCreator
|
|
|
|
@Test
|
|
fun setStartAndDueFromFilter() = runBlocking {
|
|
val task = freezeAt(DateTime(2021, 2, 4, 14, 56, 34, 126)) {
|
|
taskCreator.create(mapOf(
|
|
HIDE_UNTIL.name!! to VALUE_EOD,
|
|
DUE_DATE.name!! to VALUE_EOD_TOMORROW
|
|
), null)
|
|
}
|
|
|
|
assertEquals(DateTime(2021, 2, 4).millis, task.hideUntil)
|
|
assertEquals(
|
|
createDueDate(URGENCY_SPECIFIC_DAY, DateTime(2021, 2, 5).millis),
|
|
task.dueDate
|
|
)
|
|
}
|
|
|
|
@Test
|
|
fun setDefaultStartWithFilterDue() = runBlocking {
|
|
preferences.setString(R.string.p_default_hideUntil_key, Task.HIDE_UNTIL_DUE.toString())
|
|
val task = freezeAt(DateTime(2021, 2, 4, 14, 56, 34, 126)) {
|
|
taskCreator.create(mapOf(
|
|
DUE_DATE.name!! to VALUE_EOD
|
|
), null)
|
|
}
|
|
|
|
assertEquals(DateTime(2021, 2, 4).millis, task.hideUntil)
|
|
}
|
|
|
|
@Test
|
|
fun setStartAndDueFromPreferences() = runBlocking {
|
|
preferences.setString(R.string.p_default_urgency_key, Task.URGENCY_TODAY.toString())
|
|
preferences.setString(R.string.p_default_hideUntil_key, Task.HIDE_UNTIL_DUE.toString())
|
|
|
|
val task = freezeAt(DateTime(2021, 2, 4, 14, 56, 34, 126)) {
|
|
taskCreator.create(null, "test")
|
|
}
|
|
|
|
assertEquals(DateTime(2021, 2, 4).millis, task.hideUntil)
|
|
assertEquals(
|
|
createDueDate(URGENCY_SPECIFIC_DAY, DateTime(2021, 2, 4).millis),
|
|
task.dueDate
|
|
)
|
|
}
|
|
|
|
@Test
|
|
fun filterStartOverridesDefaultStart() = runBlocking {
|
|
preferences.setString(R.string.p_default_urgency_key, Task.URGENCY_TODAY.toString())
|
|
preferences.setString(R.string.p_default_hideUntil_key, Task.HIDE_UNTIL_DUE.toString())
|
|
|
|
val task = freezeAt(DateTime(2021, 2, 4, 14, 56, 34, 126)) {
|
|
taskCreator.create(mapOf(
|
|
HIDE_UNTIL.name!! to VALUE_EOD_NEXT_WEEK
|
|
), null)
|
|
}
|
|
|
|
assertEquals(DateTime(2021, 2, 11).millis, task.hideUntil)
|
|
}
|
|
|
|
@Test
|
|
fun filterDueOverridesDefaultDue() = runBlocking {
|
|
preferences.setString(R.string.p_default_urgency_key, Task.URGENCY_TODAY.toString())
|
|
|
|
val task = freezeAt(DateTime(2021, 2, 4, 14, 56, 34, 126)) {
|
|
taskCreator.create(mapOf(
|
|
DUE_DATE.name!! to VALUE_EOD_TOMORROW
|
|
), null)
|
|
}
|
|
|
|
assertEquals(
|
|
createDueDate(URGENCY_SPECIFIC_DAY, DateTime(2021, 2, 5).millis),
|
|
task.dueDate
|
|
)
|
|
}
|
|
} |