Replace task test subclasses

pull/996/head
Alex Baker 4 years ago
parent 3b6d355890
commit c014490fe0

@ -5,10 +5,16 @@ import com.google.ical.values.Frequency
import com.google.ical.values.RRule import com.google.ical.values.RRule
import com.google.ical.values.Weekday import com.google.ical.values.Weekday
import com.google.ical.values.WeekdayNum import com.google.ical.values.WeekdayNum
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.tasks.makers.TaskMaker.AFTER_COMPLETE
import org.tasks.makers.TaskMaker.COMPLETION_TIME
import org.tasks.makers.TaskMaker.DUE_TIME
import org.tasks.makers.TaskMaker.RRULE
import org.tasks.makers.TaskMaker.newTask
import org.tasks.time.DateTime import org.tasks.time.DateTime
import java.text.ParseException import java.text.ParseException
@ -222,57 +228,45 @@ class NewRepeatTests {
} }
private fun newFromDue(frequency: Frequency, interval: Int, dueDateTime: DateTime): Task { private fun newFromDue(frequency: Frequency, interval: Int, dueDateTime: DateTime): Task {
return object : Task() { return newTask(
init { with(RRULE, getRecurrenceRule(frequency, interval)),
recurrence = getRecurrenceRule(frequency, interval, false) with(AFTER_COMPLETE, false),
dueDate = dueDateTime.millis with(DUE_TIME, dueDateTime))
}
}
} }
private fun newWeeklyFromDue(interval: Int, dueDateTime: DateTime, vararg weekdays: WeekdayNum): Task { private fun newWeeklyFromDue(interval: Int, dueDateTime: DateTime, vararg weekdays: WeekdayNum): Task {
return object : Task() { return newTask(
init { with(RRULE, getRecurrenceRule(Frequency.WEEKLY, interval, *weekdays)),
recurrence = getRecurrenceRule(Frequency.WEEKLY, interval, false, *weekdays) with(AFTER_COMPLETE, false),
dueDate = dueDateTime.millis with(DUE_TIME, dueDateTime))
}
}
} }
private fun newFromCompleted( private fun newFromCompleted(
frequency: Frequency, interval: Int, dueDateTime: DateTime, completionDate: DateTime): Task { frequency: Frequency, interval: Int, dueDateTime: DateTime, completionDate: DateTime): Task {
return object : Task() { return newTask(
init { with(RRULE, getRecurrenceRule(frequency, interval)),
recurrence = getRecurrenceRule(frequency, interval, true) with(AFTER_COMPLETE, true),
dueDate = dueDateTime.millis with(DUE_TIME, dueDateTime),
this.completionDate = completionDate.millis with(COMPLETION_TIME, completionDate))
}
}
} }
private fun newWeeklyFromCompleted( private fun newWeeklyFromCompleted(
interval: Int, dueDateTime: DateTime, completionDate: DateTime, vararg weekdays: WeekdayNum): Task { interval: Int, dueDateTime: DateTime, completionDate: DateTime, vararg weekdays: WeekdayNum): Task {
return object : Task() { return newTask(
init { with(RRULE, getRecurrenceRule(Frequency.WEEKLY, interval, *weekdays)),
recurrence = getRecurrenceRule(Frequency.WEEKLY, interval, true, *weekdays) with(AFTER_COMPLETE, true),
dueDate = dueDateTime.millis with(DUE_TIME, dueDateTime),
this.completionDate = completionDate.millis with(COMPLETION_TIME, completionDate))
}
}
} }
private fun getRecurrenceRule( private fun getRecurrenceRule(
frequency: Frequency, interval: Int, fromCompletion: Boolean, vararg weekdays: WeekdayNum): String { frequency: Frequency, interval: Int, vararg weekdays: WeekdayNum): RRule {
val rrule = RRule() val rrule = RRule()
rrule.freq = frequency rrule.freq = frequency
rrule.interval = interval rrule.interval = interval
if (weekdays.isNotEmpty()) { if (weekdays.isNotEmpty()) {
rrule.byDay = listOf(*weekdays) rrule.byDay = listOf(*weekdays)
} }
var result = rrule.toIcal() return rrule
if (fromCompletion) {
result += ";FROM=COMPLETION"
}
return result
} }
} }

@ -24,7 +24,7 @@ import java.util.*
indices = [ indices = [
Index(name = "t_rid", value = ["remoteId"], unique = true), Index(name = "t_rid", value = ["remoteId"], unique = true),
Index(name = "active_and_visible", value = ["completed", "deleted", "hideUntil"])]) Index(name = "active_and_visible", value = ["completed", "deleted", "hideUntil"])])
open class Task : Parcelable { class Task : Parcelable {
/** ID */ /** ID */
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id") @ColumnInfo(name = "_id")

Loading…
Cancel
Save