Skip to content

Commit 017fdb4

Browse files
committed
Legg til databasetester
1 parent b22ac0a commit 017fdb4

File tree

4 files changed

+80
-53
lines changed

4 files changed

+80
-53
lines changed

src/main/kotlin/DatabaseConfig.kt

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/kotlin/DialogRepository.kt

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package no.nav.helsearbeidsgiver
2+
3+
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
4+
import org.jetbrains.exposed.exceptions.ExposedSQLException
5+
import org.jetbrains.exposed.sql.Database
6+
import org.jetbrains.exposed.sql.insert
7+
import org.jetbrains.exposed.sql.selectAll
8+
import org.jetbrains.exposed.sql.transactions.transaction
9+
import java.util.UUID
10+
11+
class DialogRepository(
12+
private val db: Database,
13+
) {
14+
fun lagreDialog(
15+
dialogId: UUID,
16+
sykmeldingId: UUID,
17+
) {
18+
try {
19+
transaction(db) {
20+
DialogEntitet.insert {
21+
it[this.dialogId] = dialogId
22+
it[this.sykmeldingId] = sykmeldingId
23+
}
24+
}
25+
} catch (e: ExposedSQLException) {
26+
sikkerLogger().error("Klarte ikke å lagre dialog med id $dialogId i databasen", e)
27+
throw e
28+
}
29+
}
30+
31+
fun finnDialogId(sykmeldingId: UUID): UUID? =
32+
transaction(db) {
33+
DialogEntitet
34+
.selectAll()
35+
.where { DialogEntitet.sykmeldingId eq sykmeldingId }
36+
.map { it[DialogEntitet.dialogId] }
37+
.firstOrNull()
38+
}
39+
}

src/main/kotlin/Env.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ object Env {
2525
val username = "NAIS_DATABASE_DIALOG_DIALOG_USERNAME".fromEnv()
2626
val password = "NAIS_DATABASE_DIALOG_DIALOG_PASSWORD".fromEnv()
2727
val name = "NAIS_DATABASE_DIALOG_DIALOG_DATABASE".fromEnv()
28-
val host = "NAIS_DATABASE_DIALOG_DIALOG_HOST".fromEnv()
29-
val port = "NAIS_DATABASE_DIALOG_DIALOG_PORT".fromEnv()
3028
}
3129

3230
val navArbeidsgiverApiBaseUrl = "NAV_ARBEIDSGIVER_API_BASEURL".fromEnv()

src/test/kotlin/DialogRepositoryTest.kt

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1+
import io.kotest.assertions.throwables.shouldThrow
12
import io.kotest.matchers.collections.shouldBeEmpty
3+
import io.kotest.matchers.nulls.shouldNotBeNull
4+
import io.kotest.matchers.shouldBe
25
import no.nav.helsearbeidsgiver.DialogEntitet
6+
import no.nav.helsearbeidsgiver.DialogRepository
7+
import org.jetbrains.exposed.exceptions.ExposedSQLException
38
import org.jetbrains.exposed.sql.Database
49
import org.jetbrains.exposed.sql.ResultRow
510
import org.jetbrains.exposed.sql.selectAll
@@ -21,13 +26,46 @@ class TestRepo(
2126

2227
class DialogRepositoryTest :
2328
FunSpecWithDb(listOf(DialogEntitet), { db ->
24-
25-
// val inntektsmeldingRepo = DialogRepository(db)
2629
val testRepo = TestRepo(db)
30+
val dialogRepo = DialogRepository(db)
31+
32+
val sykmeldingId = UUID.randomUUID()
33+
val dialogId = UUID.randomUUID()
2734

28-
test("skal lagre inntektsmeldingskjema og inntektsmelding") {
35+
test("lagreDialog skal lagre dialog") {
2936
transaction {
3037
DialogEntitet.selectAll().toList()
3138
}.shouldBeEmpty()
39+
dialogRepo.lagreDialog(dialogId = dialogId, sykmeldingId = sykmeldingId)
40+
41+
val record = testRepo.hentRecordFraDialog(sykmeldingId).shouldNotBeNull()
42+
record.getOrNull(DialogEntitet.dialogId) shouldBe dialogId
43+
}
44+
45+
test("finnDialogId skal finne dialogId for sykmeldingId") {
46+
transaction {
47+
DialogEntitet.selectAll().toList()
48+
}.shouldBeEmpty()
49+
50+
dialogRepo.lagreDialog(dialogId = dialogId, sykmeldingId = sykmeldingId)
51+
dialogRepo.finnDialogId(sykmeldingId) shouldBe dialogId
52+
}
53+
54+
test("lagreDialog skal kaste feil dersom den forsøker å lagre dialog med dialogId som allerede finnes") {
55+
transaction {
56+
DialogEntitet.selectAll().toList()
57+
}.shouldBeEmpty()
58+
dialogRepo.lagreDialog(dialogId = dialogId, sykmeldingId = sykmeldingId)
59+
60+
shouldThrow<ExposedSQLException> { dialogRepo.lagreDialog(dialogId = dialogId, sykmeldingId = UUID.randomUUID()) }
61+
}
62+
63+
test("lagreDialog skal kaste feil dersom den forsøker å lagre dialog med sykmeldingId som allerede finnes") {
64+
transaction {
65+
DialogEntitet.selectAll().toList()
66+
}.shouldBeEmpty()
67+
dialogRepo.lagreDialog(dialogId = dialogId, sykmeldingId = sykmeldingId)
68+
69+
shouldThrow<ExposedSQLException> { dialogRepo.lagreDialog(dialogId = UUID.randomUUID(), sykmeldingId = sykmeldingId) }
3270
}
3371
})

0 commit comments

Comments
 (0)