#57 finish FunctionalTimer unit tests

This commit is contained in:
reyniersbram 2023-04-17 18:46:42 +02:00
parent e60a96429c
commit 2b68373230
8 changed files with 171 additions and 21 deletions

View file

@ -1,10 +1,10 @@
package be.ugent.sel.studeez.data.local.models.timer_functional
class FunctionalCustomTimer(studyTime: Int): FunctionalTimer(studyTime) {
class FunctionalCustomTimer(studyTime: Int) : FunctionalTimer(studyTime) {
override fun tick() {
if (time.time == 0) {
view = "Done!"
view = DONE
} else {
time.minOne()
}

View file

@ -1,6 +1,6 @@
package be.ugent.sel.studeez.data.local.models.timer_functional
class FunctionalEndlessTimer() : FunctionalTimer(0){
class FunctionalEndlessTimer() : FunctionalTimer(0) {
override fun hasEnded(): Boolean {
return false

View file

@ -3,25 +3,25 @@ package be.ugent.sel.studeez.data.local.models.timer_functional
class FunctionalPomodoroTimer(
private var studyTime: Int,
private var breakTime: Int, repeats: Int
): FunctionalTimer(studyTime) {
) : FunctionalTimer(studyTime) {
private var breaksRemaining = repeats
private var isInBreak = false
var breaksRemaining = repeats
var isInBreak = false
override fun tick() {
if (time.time == 0 && breaksRemaining == 0){
view = "Done!"
if (time.time == 0 && breaksRemaining == 0) {
view = DONE
return
}
if (time.time == 0) {
if (isInBreak) {
breaksRemaining--
view = "Focus! ($breaksRemaining breaks remaining)"
view = FOCUS_REMAINING(breaksRemaining)
time.time = studyTime
} else {
view = "Take a break!"
time.time =breakTime
view = BREAK
time.time = breakTime
}
isInBreak = !isInBreak
}

View file

@ -2,7 +2,7 @@ package be.ugent.sel.studeez.data.local.models.timer_functional
abstract class FunctionalTimer(initialValue: Int) {
val time: Time = Time(initialValue)
var view: String = "Focus"
var view: String = FOCUS
fun getHoursMinutesSeconds(): HoursMinutesSeconds {
return time.getAsHMS()
@ -12,4 +12,11 @@ abstract class FunctionalTimer(initialValue: Int) {
abstract fun hasEnded(): Boolean
companion object {
const val FOCUS: String = "Focus"
const val DONE: String = "Done!"
const val BREAK: String = "Take a break!"
val FOCUS_REMAINING: (Int) -> String = { n -> "Focus! ($n breaks remaining)" }
}
}