From 3f1ebe8a0756cf2540d180bd3eceeebcd6f37dc8 Mon Sep 17 00:00:00 2001 From: Sindre Kjelsrud Date: Tue, 25 Jul 2023 14:44:45 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Legger=20til=20tester=20s=C3=B8kefu?= =?UTF-8?q?nksjonalitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Markus A. R. Johansen --- .../no/nav/helse/sprik/modell/Sokemotor.kt | 22 +++++++++ .../test/kotlin/no/nav/helse/sprik/SokTest.kt | 49 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt create mode 100644 backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt new file mode 100644 index 0000000..d497d11 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Sokemotor.kt @@ -0,0 +1,22 @@ +package no.nav.helse.sprik.modell + +import no.nav.helse.sprik.db.FeilmeldingRepository +import java.util.* +import kotlin.collections.ArrayList + +class Sokemotor { + private val feilmeldingRepository = FeilmeldingRepository() + + fun sok(s: String): List { + val feilmeldinger = feilmeldingRepository.hentAlleFeilmeldinger() + val resultat = ArrayList() + + for (i in feilmeldinger) { + if (i.tittel.equals(s) or i.beskrivelse.equals(s)) { + resultat.add(i) + } + } + + return resultat.toList() + } +} \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt new file mode 100644 index 0000000..f7478cc --- /dev/null +++ b/backend/src/test/kotlin/no/nav/helse/sprik/SokTest.kt @@ -0,0 +1,49 @@ +package no.nav.helse.sprik + +import no.nav.helse.sprik.db.Database +import no.nav.helse.sprik.db.FeilmeldingRepository +import no.nav.helse.sprik.modell.Feilmelding +import no.nav.helse.sprik.modell.Sokemotor +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 SokTest { + private val database = Database(dbconfig()).configureFlyway() + private val sokemotor = Sokemotor() + private val feilmeldingRepository = FeilmeldingRepository() + private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0)) + private val feilmelding2 = Feilmelding("Tittel", "Beskrivelse", LocalDateTime.of(2023,2,1,8,0)) + + @BeforeAll + fun setup() { + ExposedDatabase.connect(database.dataSource) + feilmeldingRepository.lagre(feilmelding) + feilmeldingRepository.lagre(feilmelding2) + } + + @Test + fun `Søk etter nøkkelord i titler`() { + val sokeresultat = sokemotor.sok("Test") + assertEquals(1, sokeresultat.size) + assertEquals(sokeresultat[0].tittel, "Test") + } + + @Test + fun `Søk etter nøkkelord i beskrivelser`() { + val sokeresultat = sokemotor.sok("Beskrivelse") + assertEquals(1, sokeresultat.size) + assertEquals(sokeresultat[0].beskrivelse, "Beskrivelse") + } + + /* + @Test + fun `Søk etter kategorier`() { + TODO() + } + */ +} \ No newline at end of file