2023-07-11 14:28:25 +02:00
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
2023-07-17 16:11:35 +02:00
import no.nav.helse.sprik.modell.Feilmelding
2023-07-11 14:28:25 +02:00
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
2023-07-11 15:37:01 +02:00
import java.time.LocalDateTime
2023-07-11 14:28:25 +02:00
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 ( )
2023-07-17 16:11:35 +02:00
private val feilmelding = Feilmelding ( " Test " , " Testesen " , LocalDateTime . of ( 2023 , 1 , 1 , 8 , 0 ) )
2023-07-11 14:28:25 +02:00
@BeforeAll
fun setup ( ) {
ExposedDatabase . connect ( database . dataSource )
}
@AfterEach
fun wipe ( ) {
transaction {
FeilmeldingTable . deleteAll ( )
}
}
2023-07-11 15:37:01 +02:00
@Test
fun `Sett opp testdatabasen riktig` ( ) {
2023-07-17 16:11:35 +02:00
feilmeldingRepository . lagre ( feilmelding )
2023-07-11 15:37:01 +02:00
transaction {
assertEquals ( 1 , FeilmeldingTable . selectAll ( ) . map {
it
} . size )
}
}
2023-07-11 14:28:25 +02:00
@Test
fun `Lagrer feilmelding i databasen` ( ) {
2023-07-17 16:11:35 +02:00
feilmeldingRepository . lagre ( feilmelding )
2023-07-11 14:28:25 +02:00
transaction {
val actual = FeilmeldingTable . selectAll ( ) . single ( )
2023-07-17 16:11:35 +02:00
assertEquals ( " Test " , actual [ FeilmeldingTable . tittel ] )
assertEquals ( " Testesen " , actual [ FeilmeldingTable . beskrivelse ] )
2023-07-11 15:37:01 +02:00
assertEquals ( LocalDateTime . of ( 2023 , 1 , 1 , 8 , 0 ) , actual [ FeilmeldingTable . dato ] )
2023-07-11 14:28:25 +02:00
}
}
2023-07-20 15:51:05 +02:00
@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 )
}
}
2023-07-11 14:28:25 +02:00
}