tests: added ConvertersTest and LessonTypeTest
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
package agzam.vyatsu.data.local
|
||||||
|
|
||||||
|
import agzam.vyatsu.domain.model.LessonType
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertNull
|
||||||
|
import org.junit.Test
|
||||||
|
import java.time.LocalDate
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
class ConvertersTest {
|
||||||
|
|
||||||
|
private val converters = Converters()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun localDate_roundTripsThroughEpochDay() {
|
||||||
|
val date = LocalDate.of(2026, 9, 14)
|
||||||
|
assertEquals(date, converters.epochDayToLocalDate(converters.localDateToEpochDay(date)))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun nullDate_staysNull() {
|
||||||
|
assertNull(converters.localDateToEpochDay(null))
|
||||||
|
assertNull(converters.epochDayToLocalDate(null))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun localTime_roundTripsThroughMinutes() {
|
||||||
|
assertEquals(
|
||||||
|
LocalTime.of(8, 20),
|
||||||
|
converters.minutesToLocalTime(converters.localTimeToMinutes(LocalTime.of(8, 20)))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun localTime_boundariesMapToMinutes() {
|
||||||
|
assertEquals(0, converters.localTimeToMinutes(LocalTime.of(0, 0)))
|
||||||
|
assertEquals(1439, converters.localTimeToMinutes(LocalTime.of(23, 59)))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun nullTime_staysNull() {
|
||||||
|
assertNull(converters.localTimeToMinutes(null))
|
||||||
|
assertNull(converters.minutesToLocalTime(null))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun lessonType_roundTripsEveryValue() {
|
||||||
|
for (type in LessonType.entries) {
|
||||||
|
assertEquals(type, converters.stringToLessonType(converters.lessonTypeToString(type)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun unknownLessonType_isOther() {
|
||||||
|
assertEquals(LessonType.OTHER, converters.stringToLessonType("NOPE"))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package agzam.vyatsu.domain.model
|
||||||
|
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class LessonTypeTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fromRaw_recognizesExactLabels() {
|
||||||
|
assertEquals(LessonType.LECTURE, LessonType.fromRaw("Лекция"))
|
||||||
|
assertEquals(LessonType.PRACTICE, LessonType.fromRaw("Практическое занятие"))
|
||||||
|
assertEquals(LessonType.LABORATORY, LessonType.fromRaw("Лабораторная работа"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fromRaw_trimsSurroundingWhitespace() {
|
||||||
|
assertEquals(LessonType.LECTURE, LessonType.fromRaw(" Лекция "))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fromRaw_unknownValue_isOther() {
|
||||||
|
assertEquals(LessonType.OTHER, LessonType.fromRaw("Семинар"))
|
||||||
|
assertEquals(LessonType.OTHER, LessonType.fromRaw(""))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun labels_matchParserVocabulary() {
|
||||||
|
assertEquals("Лекция", LessonType.LECTURE.label)
|
||||||
|
assertEquals("Практическое занятие", LessonType.PRACTICE.label)
|
||||||
|
assertEquals("Лабораторная работа", LessonType.LABORATORY.label)
|
||||||
|
assertEquals("Занятие", LessonType.OTHER.label)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun fromRaw_roundTripsEveryLabel() {
|
||||||
|
for (type in LessonType.entries) {
|
||||||
|
assertEquals(type, LessonType.fromRaw(type.label))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user