This repository has been archived on 2025-10-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
helse-sprik/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt

70 lines
2.4 KiB
Kotlin
Raw Normal View History

package no.nav.helse.sprik
import com.zaxxer.hikari.HikariConfig
import no.nav.helse.sprik.db.Database
import no.nav.helse.sprik.db.FeilmeldingRepository
import no.nav.helse.sprik.db.FeilmeldingTable
import no.nav.helse.sprik.modell.Feilmelding
import org.jetbrains.exposed.sql.deleteAll
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import java.time.LocalDateTime
import kotlin.test.assertEquals
import org.jetbrains.exposed.sql.Database as ExposedDatabase
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class FeilmeldingTest {
private val database = Database(dbconfig()).configureFlyway()
private val feilmeldingRepository = FeilmeldingRepository()
private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0))
@BeforeAll
fun setup() {
ExposedDatabase.connect(database.dataSource)
}
@AfterEach
fun wipe() {
transaction {
FeilmeldingTable.deleteAll()
}
}
@Test
fun `Sett opp testdatabasen riktig`(){
feilmeldingRepository.lagre(feilmelding)
transaction {
assertEquals(1, FeilmeldingTable.selectAll().map {
it
}.size)
}
}
@Test
fun `Lagrer feilmelding i databasen`() {
feilmeldingRepository.lagre(feilmelding)
transaction {
val actual = FeilmeldingTable.selectAll().single()
assertEquals("Test", actual[FeilmeldingTable.tittel])
assertEquals("Testesen", actual[FeilmeldingTable.beskrivelse])
assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), actual[FeilmeldingTable.dato])
}
}
@Test
fun `Henter alle feilmeldinger i databasen`() {
feilmeldingRepository.lagre(feilmelding)
transaction {
val res: List<Feilmelding> = feilmeldingRepository.hentAlleFeilmeldinger()
val actual = FeilmeldingTable.selectAll()
assertEquals(actual.map { it }.size, res.size)
assertEquals("Test", res[0].tittel)
assertEquals("Testesen", res[0].beskrivelse)
assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), res[0].dato)
}
}
}