Add tests for sync

pull/3782/head
Milosch Füllgraf 4 months ago
parent 2b9d8a2d3c
commit d745879e1e

@ -655,6 +655,94 @@ class iCalendarMergeTest {
assertEquals("789", it.remoteParent)
}
@Test
fun remoteSetsEstimated() =
newTask()
.applyRemote(
remote = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 2*60*60)),
local = null
)
.let {
assertEquals(2*60*60, it.estimatedSeconds)
}
@Test
fun remoteRemovesEstimated() =
newTask(with(TaskMaker.ESTIMATED_SECONDS, 2*60*60))
.applyRemote(
remote = newIcal(),
local = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 2*60*60))
)
.let {
assertEquals(0, it.estimatedSeconds)
}
@Test
fun localResetsEstimated() =
newTask()
.applyRemote(
remote = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 2*60*60)),
local = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 2*60*60))
)
.let {
assertEquals(0, it.estimatedSeconds)
}
@Test
fun localBeatsRemoteEstimated() =
newTask(with(TaskMaker.ESTIMATED_SECONDS, 2*60*60))
.applyRemote(
remote = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 4*60*60)),
local = newIcal(with(iCalMaker.ESTIMATED_SECONDS, 3*60*60))
)
.let {
assertEquals(2*60*60, it.estimatedSeconds)
}
@Test
fun remoteSetsElapsed() =
newTask()
.applyRemote(
remote = newIcal(with(iCalMaker.ELAPSED_SECONDS, 2*60*60)),
local = null
)
.let {
assertEquals(2*60*60, it.elapsedSeconds)
}
@Test
fun remoteRemovesElapsed() =
newTask(with(TaskMaker.ELAPSED_SECONDS, 2*60*60))
.applyRemote(
remote = newIcal(),
local = newIcal(with(iCalMaker.ELAPSED_SECONDS, 2*60*60))
)
.let {
assertEquals(0, it.elapsedSeconds)
}
@Test
fun localResetsElapsed() =
newTask()
.applyRemote(
remote = newIcal(with(iCalMaker.ELAPSED_SECONDS, 2*60*60)),
local = newIcal(with(iCalMaker.ELAPSED_SECONDS, 2*60*60))
)
.let {
assertEquals(0, it.elapsedSeconds)
}
@Test
fun localBeatsRemoteElapsed() =
newTask(with(TaskMaker.ELAPSED_SECONDS, 2*60*60))
.applyRemote(
remote = newIcal(with(iCalMaker.ELAPSED_SECONDS, 4*60*60)),
local = newIcal(with(iCalMaker.ELAPSED_SECONDS, 3*60*60))
)
.let {
assertEquals(2*60*60, it.elapsedSeconds)
}
companion object {
private fun DateTime.allDay() =
createDueDate(URGENCY_SPECIFIC_DAY, millis)

@ -35,6 +35,8 @@ object TaskMaker {
val COLLAPSED: Property<Task, Boolean> = newProperty()
val DESCRIPTION: Property<Task, String?> = newProperty()
val ORDER: Property<Task, Long> = newProperty()
val ESTIMATED_SECONDS: Property<Task, Int> = newProperty()
val ELAPSED_SECONDS: Property<Task, Int> = newProperty()
private val instantiator = Instantiator { lookup: PropertyLookup<Task> ->
val creationTime = lookup.valueOf(CREATION_TIME, DateTimeUtils.newDateTime())
@ -62,6 +64,8 @@ object TaskMaker {
order = lookup.valueOf(ORDER, null as Long?),
creationDate = creationTime.millis,
modificationDate = lookup.valueOf(MODIFICATION_TIME, creationTime).millis,
estimatedSeconds = lookup.valueOf(ESTIMATED_SECONDS, 0),
elapsedSeconds = lookup.valueOf(ELAPSED_SECONDS, 0)
)
lookup.valueOf(START_DATE, null as DateTime?)?.let {
task.hideUntil = task.createHideUntil(HIDE_UNTIL_SPECIFIC_DAY, it.millis)

@ -14,6 +14,8 @@ import net.fortuna.ical4j.model.property.RRule
import net.fortuna.ical4j.model.property.Status
import org.tasks.caldav.iCalendar
import org.tasks.caldav.iCalendar.Companion.collapsed
import org.tasks.caldav.iCalendar.Companion.elapsedSeconds
import org.tasks.caldav.iCalendar.Companion.estimatedSeconds
import org.tasks.caldav.iCalendar.Companion.order
import org.tasks.caldav.iCalendar.Companion.parent
import org.tasks.time.DateTime
@ -35,6 +37,8 @@ object iCalMaker {
val COLLAPSED: Property<Task, Boolean> = newProperty()
val RRULE: Property<Task, String?> = newProperty()
val STATUS: Property<Task, Status?> = newProperty()
val ESTIMATED_SECONDS: Property<Task, Int> = newProperty()
val ELAPSED_SECONDS: Property<Task, Int> = newProperty()
private val instantiator = Instantiator { lookup: PropertyLookup<Task> ->
val task = Task()
@ -65,6 +69,8 @@ object iCalMaker {
task.collapsed = lookup.valueOf(COLLAPSED, false)
task.rRule = lookup.valueOf(RRULE, null as String?)?.let { RRule(it) }
task.status = lookup.valueOf(STATUS, null as Status?)
task.estimatedSeconds = lookup.valueOf(ESTIMATED_SECONDS, 0)
task.elapsedSeconds = lookup.valueOf(ELAPSED_SECONDS, 0)
task
}
fun newIcal(vararg properties: PropertyValue<in Task?, *>): Task {

Loading…
Cancel
Save