Skip to content

Commit

Permalink
Added more tests, fixed counter
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitenok committed Jan 2, 2025
1 parent a6b038f commit bb1d3e2
Show file tree
Hide file tree
Showing 3 changed files with 185 additions and 9 deletions.
5 changes: 4 additions & 1 deletion src/main/kotlin/no/nav/syfo/db/UtsendtVarselDAO.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ fun DatabaseInterface.storeUtsendtVarsel(PUtsendtVarsel: PUtsendtVarsel) {
utsendt_tidspunkt,
ekstern_ref,
arbeidsgivernotifikasjon_merkelapp,
is_forced_letter) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
is_forced_letter,
journalpost_id
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""".trimIndent()

connection.use { connection ->
Expand All @@ -32,6 +34,7 @@ fun DatabaseInterface.storeUtsendtVarsel(PUtsendtVarsel: PUtsendtVarsel) {
it.setString(8, PUtsendtVarsel.eksternReferanse)
it.setString(9, PUtsendtVarsel.arbeidsgivernotifikasjonMerkelapp)
it.setBoolean(10, PUtsendtVarsel.isForcedLetter)
it.setString(11, PUtsendtVarsel.journalpostId)
it.executeUpdate()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class SendForcedAktivitetspliktLetterJob(private val db: DatabaseInterface, priv
val unreadVarslerOverdude = allUnreadVarsler.filter { isVarselUnredIn2Days(it) }

log.info("SendForcedAktivitetspliktLetterJob is about to send ${unreadVarslerOverdude.size} forced letters")
var sentForcedLettersAmount = unreadVarslerOverdude.size
var sentForcedLettersAmount = 0

unreadVarslerOverdude.forEach { pUtsendtVarsel ->
if (pUtsendtVarsel.journalpostId.isNullOrBlank()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package no.nav.syfo.job

import io.kotest.core.spec.style.DescribeSpec
import io.mockk.coVerify
import io.mockk.mockk
import java.time.LocalDateTime
import java.util.*
import no.nav.syfo.db.DatabaseInterface
import kotlinx.coroutines.runBlocking
import no.nav.syfo.db.arbeidstakerAktorId1
import no.nav.syfo.db.domain.PUtsendtVarsel
import no.nav.syfo.db.domain.VarselType
import no.nav.syfo.db.storeUtsendtVarsel
import no.nav.syfo.kafka.consumers.varselbus.domain.ArbeidstakerHendelse
import no.nav.syfo.planner.arbeidstakerFnr1
import no.nav.syfo.service.SenderFacade
import no.nav.syfo.testutil.EmbeddedDatabase
Expand All @@ -16,16 +19,16 @@ import org.amshove.kluent.shouldBeEqualTo
class SendForcedAktivitetspliktLetterJobSpek : DescribeSpec({

describe("SendForcedAktivitetspliktLetterJobSpek") {
val db = mockk<DatabaseInterface>(relaxed = true)
val sendeFacade = mockk<SenderFacade>(relaxed = true)
val job = SendForcedAktivitetspliktLetterJob(db, sendeFacade)

val embeddedDatabase = EmbeddedDatabase()
val senderFacade = mockk<SenderFacade>(relaxed = true)
val job = SendForcedAktivitetspliktLetterJob(embeddedDatabase, senderFacade)

beforeTest {
embeddedDatabase.dropData()
}

it("Sends letter if varsel wasn't read in more than 2 days") {
it("Returns varsel if varsel wasn't read in more than 2 days") {

val utsendtVarsel =
PUtsendtVarsel(
Expand All @@ -50,7 +53,7 @@ class SendForcedAktivitetspliktLetterJobSpek : DescribeSpec({
isVarselOverdude shouldBeEqualTo true
}

it("Sends letter if varsel wasn't read in exactly 2 days") {
it("Returns varsel if varsel wasn't read in exactly 2 days") {
val utsendtVarsel =
PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
Expand All @@ -74,7 +77,7 @@ class SendForcedAktivitetspliktLetterJobSpek : DescribeSpec({
isVarselOverdude shouldBeEqualTo true
}

it("Does not send letter if varsel wasn't read in less than 2 days") {
it("Does not return varsel if varsel wasn't read in less than 2 days") {
val utsendtVarsel =
PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
Expand All @@ -97,5 +100,175 @@ class SendForcedAktivitetspliktLetterJobSpek : DescribeSpec({

isVarselOverdude shouldBeEqualTo false
}

it("Sends 2 forced letters for all unread varsler older than 2 days") {
val utsendtVarsel1 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "12121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(3),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = null,
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = false,
journalpostId = "111"
)

val utsendtVarsel2 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "22121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(3),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = null,
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = false,
journalpostId = "222"
)

val utsendtVarsel3 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "22121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(2),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = null,
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = false,
journalpostId = "333"
)

val utsendtVarsel4 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "22121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(3),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = null,
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = true,
journalpostId = "444"
)

val utsendtVarsel5 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "22121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(3),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = null,
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = true,
journalpostId = "555"
)

val utsendtVarsel6 = PUtsendtVarsel(
uuid = UUID.randomUUID().toString(),
fnr = "22121212121",
aktorId = null,
narmesteLederFnr = null,
orgnummer = null,
type = "SM_AKTIVITETSPLIKT",
kanal = "BRUKERNOTIFIKASJON",
utsendtTidspunkt = LocalDateTime.now().minusDays(3),
planlagtVarselId = null,
eksternReferanse = null,
ferdigstiltTidspunkt = LocalDateTime.now(),
arbeidsgivernotifikasjonMerkelapp = null,
isForcedLetter = false,
journalpostId = "666"
)

embeddedDatabase.storeUtsendtVarsel(utsendtVarsel1)
embeddedDatabase.storeUtsendtVarsel(utsendtVarsel2)
embeddedDatabase.storeUtsendtVarsel(utsendtVarsel3)
embeddedDatabase.storeUtsendtVarsel(utsendtVarsel4)
embeddedDatabase.storeUtsendtVarsel(utsendtVarsel5)
embeddedDatabase.storeUtsendtVarsel(utsendtVarsel6)

val result = runBlocking { job.sendForcedLetterFromJob() }

result shouldBeEqualTo 3

coVerify(exactly = 1) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel1.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "111"
)
}

coVerify(exactly = 1) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel2.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "222"
)
}

coVerify(exactly = 1) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel3.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "333"
)
}

coVerify(exactly = 0) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel4.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "444"
)
}

coVerify(exactly = 0) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel4.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "555"
)
}

coVerify(exactly = 0) {
senderFacade.sendForcedBrevTilFysiskPrint(
uuid = utsendtVarsel4.uuid,
varselHendelse = any<ArbeidstakerHendelse>(),
distribusjonsType = any(),
journalpostId = "666"
)
}
}

}
})

0 comments on commit bb1d3e2

Please sign in to comment.