Skip to content

Commit

Permalink
NAV-22995: Rydder opp i cucumber setup (#4874)
Browse files Browse the repository at this point in the history
### 💰 Hva skal gjøres, og hvorfor?
Favro:
https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-22995

Rydder opp i eksisterende logikk i forberedelse til en kommende PR:
#4852

### 🔎️ Er det noe spesielt du ønsker tilbakemelding om?
Nei

### ✅ Checklist
_Har du husket alle punktene i listen?_
- [ ] Jeg har testet mine endringer i henhold til akseptansekriteriene
🕵️
- [ ] Jeg har config- eller sql-endringer. I så fall, husk manuell
deploy til miljø for å verifisere endringene.
- [ ] Jeg har skrevet tester. Hvis du ikke har skrevet tester, beskriv
hvorfor under 👇

_Jeg har ikke skrevet tester fordi:_
Ikke relevant.

### 💬 Ønsker du en muntlig gjennomgang?
- [ ] Ja
- [x] Nei
  • Loading branch information
thoalm authored Nov 6, 2024
1 parent c5aa5e1 commit 13423f0
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class OppdragSteg {
private val utbetalingsoppdragGenerator = UtbetalingsoppdragGenerator()
private var behandlinger = mapOf<Long, Behandling>()
private var tilkjenteYtelser = listOf<TilkjentYtelse>()
private var tilkjenteYtelserNy = listOf<TilkjentYtelse>()
private var beregnetUtbetalingsoppdrag = mutableMapOf<Long, BeregnetUtbetalingsoppdragLongId>()
private var beregnetUtbetalingsoppdragSimulering = mutableMapOf<Long, BeregnetUtbetalingsoppdragLongId>()
private var endretMigreringsdatoMap = mutableMapOf<Long, YearMonth>()
Expand All @@ -44,14 +43,13 @@ class OppdragSteg {
fun følgendeTilkjenteYtelser(dataTable: DataTable) {
genererBehandlinger(dataTable)
tilkjenteYtelser = mapTilkjentYtelse(dataTable, behandlinger)
tilkjenteYtelserNy = mapTilkjentYtelse(dataTable, behandlinger, tilkjenteYtelser.size.toLong())
if (tilkjenteYtelser.flatMap { it.andelerTilkjentYtelse }.any { it.kildeBehandlingId != null }) {
error("Kildebehandling skal ikke settes på input, denne settes fra utbetalingsgeneratorn")
}
}

@Gitt("følgende behandlingsinformasjon")
fun `følgendeBehandlingsinformasjon`(dataTable: DataTable) {
fun følgendeBehandlingsinformasjon(dataTable: DataTable) {
endretMigreringsdatoMap =
dataTable
.groupByBehandlingId()
Expand All @@ -64,34 +62,17 @@ class OppdragSteg {

@Når("beregner utbetalingsoppdrag")
fun `beregner utbetalingsoppdrag`() {
tilkjenteYtelserNy.fold(emptyList<TilkjentYtelse>()) { acc, tilkjentYtelse ->
tilkjenteYtelser.fold(emptyList<TilkjentYtelse>()) { tidligereTilkjenteYtelser, tilkjentYtelse ->
val behandlingId = tilkjentYtelse.behandling.id
try {
genererUtbetalingsoppdragForSimuleringNy(behandlingId, acc, tilkjentYtelse)
beregnetUtbetalingsoppdrag[behandlingId] = beregnUtbetalingsoppdragNy(acc, tilkjentYtelse)
oppdaterTilkjentYtelseMedUtbetalingsoppdrag(
beregnetUtbetalingsoppdrag[behandlingId]!!,
tilkjentYtelse,
)
} catch (e: Exception) {
beregnetUtbetalingsoppdragSimulering[behandlingId] = beregnUtbetalingsoppdragNy(tidligereTilkjenteYtelser, tilkjentYtelse, true)
beregnetUtbetalingsoppdrag[behandlingId] = beregnUtbetalingsoppdragNy(tidligereTilkjenteYtelser, tilkjentYtelse, false)
oppdaterTilkjentYtelseMedUtbetalingsoppdrag(beregnetUtbetalingsoppdrag[behandlingId]!!, tilkjentYtelse)
} catch (exception: Exception) {
logger.error("Feilet beregning av oppdrag for behandling=$behandlingId")
kastedeFeil[behandlingId] = e
kastedeFeil[behandlingId] = exception
}
acc + tilkjentYtelse
}
}

private fun genererUtbetalingsoppdragForSimuleringNy(
behandlingId: Long,
tilkjenteYtelser: List<TilkjentYtelse>,
tilkjentYtelse: TilkjentYtelse,
) {
try {
beregnetUtbetalingsoppdragSimulering[behandlingId] =
beregnUtbetalingsoppdragNy(tilkjenteYtelser, tilkjentYtelse, erSimulering = true)
} catch (e: Exception) {
logger.error("Feilet beregning av oppdrag ved simulering for behandling=$behandlingId")
kastedeFeil[behandlingId] = e
tidligereTilkjenteYtelser + tilkjentYtelse
}
}

Expand All @@ -110,14 +91,14 @@ class OppdragSteg {
}

private fun beregnUtbetalingsoppdragNy(
acc: List<TilkjentYtelse>,
tidligereTilkjenteYtelser: List<TilkjentYtelse>,
tilkjentYtelse: TilkjentYtelse,
erSimulering: Boolean = false,
): BeregnetUtbetalingsoppdragLongId {
val forrigeTilkjentYtelse = acc.lastOrNull()
val forrigeTilkjentYtelse = tidligereTilkjenteYtelser.lastOrNull()

val vedtak = lagVedtak(behandling = tilkjentYtelse.behandling)
val sisteAndelPerIdent = sisteAndelPerIdentNy(acc)
val sisteAndelPerIdent = sisteAndelPerIdentNy(tidligereTilkjenteYtelser)
return utbetalingsoppdragGenerator.lagUtbetalingsoppdrag(
saksbehandlerId = "saksbehandlerId",
vedtak = vedtak,
Expand Down Expand Up @@ -171,7 +152,6 @@ class OppdragSteg {
dataTable: DataTable,
beregnetUtbetalingsoppdrag: MutableMap<Long, Utbetalingsoppdrag>,
) {
val medUtbetalingsperiode = true // TODO? Burde denne kunne sendes med som et flagg? Hva gjør den?
val forventedeUtbetalingsoppdrag =
OppdragParser.mapForventetUtbetalingsoppdrag(
dataTable,
Expand All @@ -182,10 +162,10 @@ class OppdragSteg {
beregnetUtbetalingsoppdrag[behandlingId]
?: error("Mangler utbetalingsoppdrag for $behandlingId")
try {
assertUtbetalingsoppdrag(forventetUtbetalingsoppdrag, utbetalingsoppdrag, medUtbetalingsperiode)
} catch (e: Throwable) {
assertUtbetalingsoppdrag(forventetUtbetalingsoppdrag, utbetalingsoppdrag)
} catch (exception: Throwable) {
logger.error("Feilet validering av behandling $behandlingId")
throw e
throw exception
}
}
}
Expand All @@ -199,24 +179,19 @@ class OppdragSteg {
.associateBy { it.id }
}

// @Gitt("følgende tilkjente ytelser uten andel for {}")

private fun assertUtbetalingsoppdrag(
forventetUtbetalingsoppdrag: ForventetUtbetalingsoppdrag,
utbetalingsoppdrag: Utbetalingsoppdrag,
medUtbetalingsperiode: Boolean = true,
) {
assertThat(utbetalingsoppdrag.kodeEndring).isEqualTo(forventetUtbetalingsoppdrag.kodeEndring)
assertThat(utbetalingsoppdrag.utbetalingsperiode).hasSize(forventetUtbetalingsoppdrag.utbetalingsperiode.size)
if (medUtbetalingsperiode) {
forventetUtbetalingsoppdrag.utbetalingsperiode.forEachIndexed { index, forventetUtbetalingsperiode ->
val utbetalingsperiode = utbetalingsoppdrag.utbetalingsperiode[index]
try {
assertUtbetalingsperiode(utbetalingsperiode, forventetUtbetalingsperiode)
} catch (e: Throwable) {
logger.error("Feilet validering av rad $index for oppdrag=${forventetUtbetalingsoppdrag.behandlingId}")
throw e
}
forventetUtbetalingsoppdrag.utbetalingsperiode.forEachIndexed { index, forventetUtbetalingsperiode ->
val utbetalingsperiode = utbetalingsoppdrag.utbetalingsperiode[index]
try {
assertUtbetalingsperiode(utbetalingsperiode, forventetUtbetalingsperiode)
} catch (exception: Throwable) {
logger.error("Feilet validering av rad $index for oppdrag=${forventetUtbetalingsoppdrag.behandlingId}")
throw exception
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import io.mockk.spyk
import kotlinx.coroutines.CoroutineScope
import no.nav.familie.ba.sak.common.MockedDateProvider
import no.nav.familie.ba.sak.cucumber.VedtaksperioderOgBegrunnelserStepDefinition
import no.nav.familie.ba.sak.cucumber.mock.komponentMocks.mockBehandlingMigreringsinfoRepository
import no.nav.familie.ba.sak.cucumber.mock.komponentMocks.mockEcbService
import no.nav.familie.ba.sak.cucumber.mock.komponentMocks.mockUnleashNextMedContextService
import no.nav.familie.ba.sak.cucumber.mock.komponentMocks.mockUnleashService
Expand All @@ -24,7 +25,6 @@ import no.nav.familie.ba.sak.kjerne.behandling.BehandlingService
import no.nav.familie.ba.sak.kjerne.behandling.SnikeIKøenService
import no.nav.familie.ba.sak.kjerne.behandling.behandlingstema.BehandlingstemaService
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingMigreringsinfoRepository
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingSøknadsinfoService
import no.nav.familie.ba.sak.kjerne.behandling.settpåvent.SettPåVentService
import no.nav.familie.ba.sak.kjerne.behandlingsresultat.BehandlingsresultatService
Expand Down Expand Up @@ -232,7 +232,7 @@ class CucumberMock(
behandlingHentOgPersisterService = behandlingHentOgPersisterService,
behandlingstemaService = behandlingstemaService,
behandlingSøknadsinfoService = mockk<BehandlingSøknadsinfoService>(),
behandlingMigreringsinfoRepository = mockk<BehandlingMigreringsinfoRepository>(),
behandlingMigreringsinfoRepository = mockBehandlingMigreringsinfoRepository(),
behandlingMetrikker = behandlingMetrikker,
saksstatistikkEventPublisher = saksstatistikkEventPublisher,
fagsakRepository = fagsakRepository,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package no.nav.familie.ba.sak.cucumber.mock.komponentMocks

import io.mockk.every
import io.mockk.mockk
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingMigreringsinfoRepository

fun mockBehandlingMigreringsinfoRepository(): BehandlingMigreringsinfoRepository {
val behandlingMigreringsinfoRepository = mockk<BehandlingMigreringsinfoRepository>()
every { behandlingMigreringsinfoRepository.finnSisteMigreringsdatoPåFagsak(any()) } returns null
return behandlingMigreringsinfoRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.familie.unleash.UnleashService
fun mockUnleashNextMedContextService(): UnleashNextMedContextService {
val unleashNextMedContextService = mockk<UnleashNextMedContextService>()
every { unleashNextMedContextService.isEnabled(any()) } returns true
every { unleashNextMedContextService.isEnabled(any(), any()) } returns true
return unleashNextMedContextService
}

Expand Down

0 comments on commit 13423f0

Please sign in to comment.