Skip to content

Commit 3d5aaca

Browse files
committed
Sjekker at det er 1-1 mellom vedtaksperiodeId og søknadId
1 parent 3a30de9 commit 3d5aaca

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

sykepenger-model/src/test/kotlin/no/nav/helse/dsl/UgyldigeSituasjonerObservatør.kt

+19
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
2525
private val gjeldendeBehandlingstatus = mutableMapOf<UUID, Behandlingstatus>()
2626
private val arbeidsgivere get() = arbeidsgivereMap.values
2727
private val IM = Inntektsmeldinger()
28+
private val søknader = mutableMapOf<UUID, UUID?>() // SøknadId -> VedtaksperiodeId
2829

2930
private val behandlingOpprettetEventer = mutableListOf<PersonObserver.BehandlingOpprettetEvent>()
3031
private val behandlingLukketEventer = mutableListOf<PersonObserver.BehandlingLukketEvent>()
@@ -136,7 +137,16 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
136137
IM.behandlingUtført()
137138
}
138139

140+
override fun søknadHåndtert(søknadId: UUID, vedtaksperiodeId: UUID, organisasjonsnummer: String) {
141+
søknader[søknadId] = null // VedtaksperiodeId her
142+
}
143+
139144
override fun vedtaksperiodeVenter(event: PersonObserver.VedtaksperiodeVenterEvent) {
145+
sjekkUgyldigeVentesituasjoner(event)
146+
sjekkSøknadIdEierskap(event.vedtaksperiodeId, event.hendelser)
147+
}
148+
149+
private fun sjekkUgyldigeVentesituasjoner(event: PersonObserver.VedtaksperiodeVenterEvent) {
140150
if (event.venterPå.venteårsak.hva != "HJELP") return // Om vi venter på noe annet enn hjelp er det OK 👍
141151
if (event.revurderingFeilet()) return // For tester som ender opp i revurdering feilet er det riktig at vi trenger hjelp 🛟
142152
if (event.auuVilOmgjøres()) return // For tester som ikke lar en AUU gå videre i livet 🛟
@@ -148,6 +158,15 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
148158
""".let { throw IllegalStateException(it) }
149159
}
150160

161+
private fun sjekkSøknadIdEierskap(vedtaksperiodeId: UUID, hendelseIder: Set<UUID>) {
162+
val søknadIder = hendelseIder.intersect(søknader.keys)
163+
søknadIder.forEach { søknadId ->
164+
val eier = søknader[søknadId]
165+
if (eier == null) søknader[søknadId] = vedtaksperiodeId
166+
else check(eier == vedtaksperiodeId) { "Både vedtaksperiode $eier og $vedtaksperiodeId peker på søknaden $søknadId" }
167+
}
168+
}
169+
151170
override fun inntektsmeldingHåndtert(inntektsmeldingId: UUID, vedtaksperiodeId: UUID, organisasjonsnummer: String) = IM.håndtert(inntektsmeldingId)
152171
override fun inntektsmeldingIkkeHåndtert(inntektsmeldingId: UUID, organisasjonsnummer: String, harPeriodeInnenfor16Dager: Boolean) = IM.ikkeHåndtert(inntektsmeldingId)
153172
override fun inntektsmeldingFørSøknad(event: PersonObserver.InntektsmeldingFørSøknadEvent) = IM.førSøknad(event.inntektsmeldingId)

0 commit comments

Comments
 (0)