Skip to content

Commit 433d9ef

Browse files
committed
1302: Småfix og testfix
1 parent fd61785 commit 433d9ef

File tree

12 files changed

+127
-9
lines changed

12 files changed

+127
-9
lines changed

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/App.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ internal fun start(
7979
applicationContext.behandlingContext.journalførVedtaksbrevService.journalfør()
8080
applicationContext.behandlingContext.distribuerVedtaksbrevService.distribuer()
8181
applicationContext.sendTilDatadelingService.send(Configuration.isNais())
82-
applicationContext.meldekortContext.oppgaveMeldekortService.opprettOppgaveForMeldekortSomIkkeGodkjennesMaskinelt()
82+
applicationContext.meldekortContext.oppgaveMeldekortService.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
8383
if (Configuration.isNais()) {
8484
applicationContext.endretTiltaksdeltakerJobb.opprettOppgaveForEndredeDeltakere()
8585
applicationContext.endretTiltaksdeltakerJobb.opprydning()

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/repository/meldekort/BrukersMeldekortPostgresRepo.kt

+9-3
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,28 @@ class BrukersMeldekortPostgresRepo(
3030
meldeperiode_versjon,
3131
sak_id,
3232
mottatt,
33-
dager
33+
dager,
34+
journalpost_id,
35+
oppgave_id
3436
) values (
3537
:id,
3638
:meldeperiode_hendelse_id,
3739
(SELECT id FROM meldeperiode WHERE hendelse_id = :meldeperiode_hendelse_id),
3840
(SELECT versjon FROM meldeperiode WHERE hendelse_id = :meldeperiode_hendelse_id),
3941
:sak_id,
4042
:mottatt,
41-
to_jsonb(:dager::jsonb)
43+
to_jsonb(:dager::jsonb),
44+
:journalpost_id,
45+
:oppgave_id
4246
)
4347
""",
4448
"id" to brukersMeldekort.id.toString(),
4549
"meldeperiode_hendelse_id" to brukersMeldekort.meldeperiodeHendelseId.toString(),
4650
"sak_id" to brukersMeldekort.sakId.toString(),
4751
"mottatt" to brukersMeldekort.mottatt,
4852
"dager" to brukersMeldekort.toDagerJson(),
53+
"journalpost_id" to brukersMeldekort.journalpostId.toString(),
54+
"oppgave_id" to brukersMeldekort.oppgaveId,
4955
).asUpdate,
5056
)
5157
}
@@ -72,7 +78,7 @@ class BrukersMeldekortPostgresRepo(
7278
}
7379
}
7480

75-
override fun hentDeUtenTilknyttetOppgave(sessionContext: SessionContext?): List<BrukersMeldekort> {
81+
override fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
7682
return sessionFactory.withSession(sessionContext) { session ->
7783
session.run(
7884
sqlQuery(

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/routes/meldekort/frameldekortapi/MottaMeldekortRoutes.kt

+1
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,6 @@ private fun BrukerutfyltMeldekortDTO.toDomain(): NyttBrukersMeldekort {
6969
)
7070
},
7171
journalpostId = JournalpostId(this.journalpostId),
72+
oppgaveId = null,
7273
)
7374
}

app/src/test/kotlin/no/nav/tiltakspenger/LocalApplicationContext.kt

+2
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ class LocalApplicationContext : ApplicationContext(gitHash = "fake-git-hash") {
186186
personService = personContext.personService,
187187
entraIdSystemtokenClient = entraIdSystemtokenClient,
188188
navkontorService = navkontorService,
189+
oppgaveGateway = oppgaveGateway,
190+
sakRepo = sakContext.sakRepo,
189191
) {}
190192
}
191193
override val behandlingContext by lazy {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package no.nav.tiltakspenger.meldekort.service
2+
3+
import io.mockk.clearAllMocks
4+
import io.mockk.coEvery
5+
import io.mockk.coVerify
6+
import io.mockk.every
7+
import io.mockk.mockk
8+
import kotlinx.coroutines.test.runTest
9+
import no.nav.tiltakspenger.common.JournalpostIdGenerator
10+
import no.nav.tiltakspenger.felles.journalføring.JournalpostId
11+
import no.nav.tiltakspenger.libs.common.SakId
12+
import no.nav.tiltakspenger.meldekort.domene.BrukersMeldekort
13+
import no.nav.tiltakspenger.meldekort.domene.BrukersMeldekortRepo
14+
import no.nav.tiltakspenger.saksbehandling.ports.OppgaveGateway
15+
import no.nav.tiltakspenger.saksbehandling.ports.Oppgavebehov
16+
import no.nav.tiltakspenger.saksbehandling.ports.SakRepo
17+
import org.junit.jupiter.api.BeforeEach
18+
import org.junit.jupiter.api.Test
19+
20+
class OppgaveMeldekortServiceTest {
21+
22+
private val oppgaveGateway = mockk<OppgaveGateway>(relaxed = true)
23+
private val sakRepo = mockk<SakRepo>()
24+
private val brukersMeldekortRepo = mockk<BrukersMeldekortRepo>()
25+
private val service = OppgaveMeldekortService(oppgaveGateway, sakRepo, brukersMeldekortRepo)
26+
27+
@BeforeEach
28+
fun setup() {
29+
clearAllMocks()
30+
}
31+
32+
@Test
33+
fun `skal opprette oppgave for gyldig meldekort`() {
34+
runTest {
35+
val journalpostId = JournalpostIdGenerator().neste().toString()
36+
val meldekort = mockk<BrukersMeldekort>()
37+
every { meldekort.journalpostId } returns journalpostId
38+
every { meldekort.sakId } returns SakId.random()
39+
40+
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
41+
coEvery { sakRepo.hentForSakId(any()) } returns mockk(relaxed = true)
42+
43+
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
44+
45+
coVerify {
46+
oppgaveGateway.opprettOppgave(
47+
any(),
48+
JournalpostId(journalpostId),
49+
Oppgavebehov.NYTT_MELDEKORT,
50+
)
51+
}
52+
}
53+
}
54+
55+
@Test
56+
fun `ingen oppgave blir opprettet om journalpostId ikke finnes`() {
57+
runTest {
58+
val meldekort = mockk<BrukersMeldekort>()
59+
every { meldekort.journalpostId } returns null
60+
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
61+
62+
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
63+
64+
coVerify(exactly = 0) { oppgaveGateway.opprettOppgave(any(), any(), any()) }
65+
}
66+
}
67+
68+
@Test
69+
fun `ingen oppgave opprettes om det ikke finnes en tilknyttet sak`() {
70+
runTest {
71+
val meldekort = mockk<BrukersMeldekort>()
72+
every { meldekort.journalpostId } returns JournalpostIdGenerator().neste().toString()
73+
every { meldekort.sakId } returns SakId.random()
74+
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns listOf(meldekort)
75+
coEvery { sakRepo.hentForSakId(any()) } returns null
76+
77+
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
78+
79+
coVerify(exactly = 0) { oppgaveGateway.opprettOppgave(any(), any(), any()) }
80+
}
81+
}
82+
83+
@Test
84+
fun `skal opprette oppgaver for gyldige meldekort`() {
85+
runTest {
86+
val meldekort = (1..20).map { mockk<BrukersMeldekort>(relaxed = true) }
87+
coEvery { brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk() } returns meldekort
88+
coEvery { sakRepo.hentForSakId(any()) } returns mockk(relaxed = true)
89+
90+
service.opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk()
91+
92+
coVerify(exactly = meldekort.size) {
93+
oppgaveGateway.opprettOppgave(any(), any(), Oppgavebehov.NYTT_MELDEKORT)
94+
}
95+
}
96+
}
97+
}

app/src/test/kotlin/no/nav/tiltakspenger/vedtak/repository/meldekort/MeldekortBrukerPostgresRepoTest.kt

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class MeldekortBrukerPostgresRepoTest {
3737
meldeperiode = meldeperiode,
3838
sakId = nyttBrukersMeldekort.sakId,
3939
dager = nyttBrukersMeldekort.dager,
40+
journalpostId = nyttBrukersMeldekort.journalpostId.toString(),
41+
oppgaveId = nyttBrukersMeldekort.oppgaveId,
4042
),
4143
)
4244
}

domene/src/main/kotlin/no/nav/tiltakspenger/meldekort/domene/BrukersMeldekortRepo.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface BrukersMeldekortRepo {
2626
sessionContext: SessionContext? = null,
2727
): BrukersMeldekort?
2828

29-
fun hentDeUtenTilknyttetOppgave(
29+
fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(
3030
sessionContext: SessionContext? = null,
3131
): List<BrukersMeldekort>
3232
}

domene/src/main/kotlin/no/nav/tiltakspenger/meldekort/domene/NyttBrukersMeldekort.kt

+1
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ data class NyttBrukersMeldekort(
2424
val sakId: SakId,
2525
val dager: List<BrukersMeldekortDag>,
2626
val journalpostId: JournalpostId,
27+
val oppgaveId: String?,
2728
)

domene/src/main/kotlin/no/nav/tiltakspenger/meldekort/service/OppgaveMeldekortService.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class OppgaveMeldekortService(
1515
private val log = KotlinLogging.logger {}
1616

1717
// På sikt vil man bare opprette oppgave for meldekort som trenger en manuell gjennomgang, for meldekort skal generelt godkjennes maskinelt.
18-
suspend fun opprettOppgaveForMeldekortSomIkkeGodkjennesMaskinelt() {
19-
brukersMeldekortRepo.hentDeUtenTilknyttetOppgave().forEach { meldekort ->
18+
suspend fun opprettOppgaveForMeldekortSomIkkeGodkjennesAutomatisk() {
19+
brukersMeldekortRepo.hentMeldekortSomIKkeSkalGodkjennesAutomatisk().forEach { meldekort ->
2020
val journalpostId = meldekort.journalpostId
2121
?: log.warn { "Fant ikke journalpostId for meldekortId ${meldekort.id}" }.let { return@forEach }
2222
val sak = sakRepo.hentForSakId(meldekort.sakId)

test-common/src/main/kotlin/no/nav/tiltakspenger/common/TestApplicationContext.kt

+2
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ class TestApplicationContext(
195195
personService = personContext.personService,
196196
entraIdSystemtokenClient = entraIdSystemtokenClient,
197197
navkontorService = navkontorService,
198+
oppgaveGateway = oppgaveGateway,
199+
sakRepo = sakContext.sakRepo,
198200
) {
199201
override val meldekortBehandlingRepo = meldekortBehandlingFakeRepo
200202
override val meldeperiodeRepo = meldeperiodeFakeRepo

test-common/src/main/kotlin/no/nav/tiltakspenger/fakes/repos/BrukersMeldekortFakeRepo.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class BrukersMeldekortFakeRepo(val meldeperiodeFakeRepo: MeldeperiodeFakeRepo) :
2323
meldeperiode = meldeperiode,
2424
mottatt = brukersMeldekort.mottatt,
2525
dager = brukersMeldekort.dager,
26+
journalpostId = brukersMeldekort.journalpostId.toString(),
27+
oppgaveId = brukersMeldekort.oppgaveId,
2628
)
2729
}
2830

@@ -43,7 +45,7 @@ class BrukersMeldekortFakeRepo(val meldeperiodeFakeRepo: MeldeperiodeFakeRepo) :
4345
return data.get().values.find { it.meldeperiode.id == hendelseId }
4446
}
4547

46-
override fun hentDeUtenTilknyttetOppgave(sessionContext: SessionContext?): List<BrukersMeldekort> {
47-
TODO("Not yet implemented")
48+
override fun hentMeldekortSomIKkeSkalGodkjennesAutomatisk(sessionContext: SessionContext?): List<BrukersMeldekort> {
49+
return data.get().values.filter { it.oppgaveId == null }
4850
}
4951
}

test-common/src/main/kotlin/no/nav/tiltakspenger/objectmothers/MeldekortMother.kt

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package no.nav.tiltakspenger.objectmothers
33
import arrow.core.NonEmptyList
44
import arrow.core.nonEmptyListOf
55
import arrow.core.toNonEmptyListOrNull
6+
import no.nav.tiltakspenger.common.JournalpostIdGenerator
67
import no.nav.tiltakspenger.felles.Navkontor
78
import no.nav.tiltakspenger.felles.erHelg
89
import no.nav.tiltakspenger.felles.nå
@@ -434,6 +435,8 @@ interface MeldekortMother {
434435
meldeperiode = meldeperiode,
435436
sakId = sakId,
436437
dager = dager,
438+
journalpostId = JournalpostIdGenerator().neste().toString(),
439+
oppgaveId = null,
437440
)
438441
}
439442

@@ -458,6 +461,8 @@ interface MeldekortMother {
458461
meldeperiodeHendelseId = meldeperiodeId,
459462
sakId = sakId,
460463
dager = dager,
464+
journalpostId = JournalpostIdGenerator().neste(),
465+
oppgaveId = null,
461466
)
462467
}
463468
}

0 commit comments

Comments
 (0)