Satt opp initiell database og tester

Co-authored-by: Amalie Mansåker <amalie.erdal.mansaker@nav.no>
Co-authored-by: Hege Haavaldsen <hege.haavaldsen@nav.no>
Co-authored-by: Helene Arnesen <helene.arnesen@nav.no>
This commit is contained in:
Markus Johansen 2023-07-11 14:28:25 +02:00
parent eba022a416
commit 30a0ba6acc
6 changed files with 84 additions and 14 deletions

View file

@ -0,0 +1,17 @@
package no.nav.helse.sprik.db
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
class FeilmeldingRepository {
fun lagre(tittel: String, beskrivelse: String){
transaction {
FeilmeldingTable.run {
insert {
it[FeilmeldingTable.tittel] = tittel
it[FeilmeldingTable.beskrivelse] = beskrivelse
}
}
}
}
}

View file

@ -0,0 +1,8 @@
package no.nav.helse.sprik.db
import org.jetbrains.exposed.sql.Table
object FeilmeldingTable : Table("feilmelding") {
val tittel = text("tittel")
val beskrivelse = text("beskrivelse")
}

View file

@ -18,6 +18,7 @@ import java.time.LocalDate
class Feilmelding( class Feilmelding(
val tittel: String, val tittel: String,
val beskrivelse: String, val beskrivelse: String,
@Serializable(LocalDateSerializer::class) @Serializable(LocalDateSerializer::class)
val dato: LocalDate? = null, //Krever en spesiallaget serialiserer i KotlinX val dato: LocalDate? = null, //Krever en spesiallaget serialiserer i KotlinX
val tags: ArrayList<String> = arrayListOf<String>() val tags: ArrayList<String> = arrayListOf<String>()

View file

@ -0,0 +1,4 @@
CREATE TABLE feilmelding (
tittel VARCHAR NOT NULL,
beskrivelse VARCHAR NOT NULL
)

View file

@ -1,14 +0,0 @@
package no.nav.helse.sprik
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class DbTest {
@Test
fun `Tester noe rart for å sjekke om junit funker`() {
val a = 2
assertEquals(2, a)
}
}

View file

@ -0,0 +1,54 @@
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 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 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()
@BeforeAll
fun setup() {
ExposedDatabase.connect(database.dataSource)
}
@AfterEach
fun wipe() {
transaction {
FeilmeldingTable.deleteAll()
}
}
@Test
fun `Lagrer feilmelding i databasen`() {
feilmeldingRepository.lagre("test", "testesen")
transaction {
val actual = FeilmeldingTable.selectAll().single()
assertEquals("test", actual[FeilmeldingTable.tittel])
assertEquals("testesen", actual[FeilmeldingTable.beskrivelse])
}
}
@Test
fun `Sett opp testdatabasen riktig`(){
feilmeldingRepository.lagre("Hællæ", "skjera bagera")
transaction {
assertEquals(1, FeilmeldingTable.selectAll().map {
it
}.size)
}
}
}