Tests merge #8
@@ -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