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