✨ 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:
parent
eba022a416
commit
30a0ba6acc
6 changed files with 84 additions and 14 deletions
backend/src
main
kotlin/no/nav/helse/sprik
resources/db/migration
test/kotlin/no/nav/helse/sprik
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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")
|
||||
}
|
|
@ -18,6 +18,7 @@ import java.time.LocalDate
|
|||
class Feilmelding(
|
||||
val tittel: String,
|
||||
val beskrivelse: String,
|
||||
|
||||
@Serializable(LocalDateSerializer::class)
|
||||
val dato: LocalDate? = null, //Krever en spesiallaget serialiserer i KotlinX
|
||||
val tags: ArrayList<String> = arrayListOf<String>()
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
CREATE TABLE feilmelding (
|
||||
tittel VARCHAR NOT NULL,
|
||||
beskrivelse VARCHAR NOT NULL
|
||||
)
|
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue