From 30a0ba6acca500ababda68f2c6601cc1466955c7 Mon Sep 17 00:00:00 2001 From: Markus Johansen Date: Tue, 11 Jul 2023 14:28:25 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Satt=20opp=20initiell=20database=20?= =?UTF-8?q?og=20tester?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amalie Mansåker Co-authored-by: Hege Haavaldsen Co-authored-by: Helene Arnesen --- .../helse/sprik/db/FeilmeldingRepository.kt | 17 ++++++ .../no/nav/helse/sprik/db/FeilmeldingTable.kt | 8 +++ .../no/nav/helse/sprik/modell/Feilmelding.kt | 1 + .../db/migration/V2__feilmelding.sql | 4 ++ .../test/kotlin/no/nav/helse/sprik/DbTest.kt | 14 ----- .../no/nav/helse/sprik/FeilmeldingTest.kt | 54 +++++++++++++++++++ 6 files changed, 84 insertions(+), 14 deletions(-) create mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt create mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt create mode 100644 backend/src/main/resources/db/migration/V2__feilmelding.sql delete mode 100644 backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt create mode 100644 backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt new file mode 100644 index 0000000..64a264c --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt @@ -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 + } + } + } + } +} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt new file mode 100644 index 0000000..ab85da7 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt @@ -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") +} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt index ebf241d..ec72c75 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt @@ -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 = arrayListOf() diff --git a/backend/src/main/resources/db/migration/V2__feilmelding.sql b/backend/src/main/resources/db/migration/V2__feilmelding.sql new file mode 100644 index 0000000..6f8e61a --- /dev/null +++ b/backend/src/main/resources/db/migration/V2__feilmelding.sql @@ -0,0 +1,4 @@ +CREATE TABLE feilmelding ( + tittel VARCHAR NOT NULL, + beskrivelse VARCHAR NOT NULL +) \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt deleted file mode 100644 index 29684f0..0000000 --- a/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt +++ /dev/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) - } - -} \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt new file mode 100644 index 0000000..d69bc52 --- /dev/null +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -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) + } + } +} \ No newline at end of file