From 4813ef3b50c7cd9f7bd7cbd0ee38fa3994d17c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Golberg?= Date: Fri, 6 Dec 2024 13:32:01 +0100 Subject: [PATCH] Hvis omregning for inntektsendring feiler skal behandling flyttes til manuell prosesstype --- .../main/kotlin/behandling/BehandlingDao.kt | 34 +++-- .../kotlin/behandling/BehandlingService.kt | 77 ++++++----- .../behandling/omregning/OmregningService.kt | 33 +++-- .../kotlin/behandling/BehandlingDaoTest.kt | 43 ++++-- .../omregning/OmregningServiceTest.kt | 124 ++++++++++++++++++ .../token/BrukerTokenInfoTestGenerator.kt | 2 + 6 files changed, 247 insertions(+), 66 deletions(-) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt index 2be8821f58e..87dbb93e5f2 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingDao.kt @@ -193,22 +193,22 @@ class BehandlingDao( status = rs.getString("status").let { BehandlingStatus.valueOf(it) }, virkningstidspunkt = rs.getString("virkningstidspunkt")?.let { objectMapper.readValue(it) }, utlandstilknytning = - rs - .getString("utlandstilknytning") - ?.let { objectMapper.readValue(it) }, + rs + .getString("utlandstilknytning") + ?.let { objectMapper.readValue(it) }, boddEllerArbeidetUtlandet = - rs - .getString("bodd_eller_arbeidet_utlandet") - ?.let { objectMapper.readValue(it) }, + rs + .getString("bodd_eller_arbeidet_utlandet") + ?.let { objectMapper.readValue(it) }, kommerBarnetTilgode = kommerBarnetTilGodeDao.hentKommerBarnetTilGode(id), prosesstype = rs.getString("prosesstype").let { Prosesstype.valueOf(it) }, kilde = rs.getString("kilde").let { Vedtaksloesning.valueOf(it) }, sendeBrev = rs.getBoolean("sende_brev"), opphoerFraOgMed = rs.getString("opphoer_fom")?.let { objectMapper.readValue(it) }, tidligereFamiliepleier = - rs - .getString("tidligere_familiepleier") - ?.let { objectMapper.readValue(it) }, + rs + .getString("tidligere_familiepleier") + ?.let { objectMapper.readValue(it) }, erSluttbehandling = rs.getBoolean("omgjoering_sluttbehandling_utland"), ) } @@ -316,7 +316,8 @@ class BehandlingDao( kommentar: String, ) = connectionAutoclosing.hentConnection { with(it) { - val stmt = prepareStatement("UPDATE behandling SET aarsak_til_avbrytelse = ?, kommentar_til_avbrytelse = ? WHERE id = ?") + val stmt = + prepareStatement("UPDATE behandling SET aarsak_til_avbrytelse = ?, kommentar_til_avbrytelse = ? WHERE id = ?") stmt.setString(1, aarsakTilAvbrytelse.name) stmt.setString(2, kommentar) @@ -481,7 +482,8 @@ class BehandlingDao( } } - private fun ResultSet.behandlingsListe(): List = toList { tilBehandling(getString("behandlingstype")) }.filterNotNull() + private fun ResultSet.behandlingsListe(): List = + toList { tilBehandling(getString("behandlingstype")) }.filterNotNull() private fun ResultSet.tilBehandling(key: String?) = when (key) { @@ -531,6 +533,16 @@ class BehandlingDao( statement.executeUpdate() } } + + fun endreProsesstype(behandlingId: UUID, ny: Prosesstype) = connectionAutoclosing.hentConnection { + with(it) { + val statement = prepareStatement("UPDATE behandling SET prosesstype = ? WHERE id = ?") + statement.setString(1, ny.name) + statement.setObject(2, behandlingId) + statement.executeUpdate() + } + } + } fun ResultSet.somLocalDateTimeUTC(kolonne: String) = getTidspunkt(kolonne).toLocalDatetimeUTC() diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt index afd748f7249..05857095c63 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingService.kt @@ -33,6 +33,7 @@ import no.nav.etterlatte.libs.common.behandling.DetaljertBehandling import no.nav.etterlatte.libs.common.behandling.JaNei import no.nav.etterlatte.libs.common.behandling.KommerBarnetTilgode import no.nav.etterlatte.libs.common.behandling.Persongalleri +import no.nav.etterlatte.libs.common.behandling.Prosesstype import no.nav.etterlatte.libs.common.behandling.RedigertFamilieforhold import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakMedBehandlinger @@ -71,84 +72,84 @@ import java.util.UUID class BehandlingFinnesIkkeException( message: String, -) : Exception(message) +): Exception(message) class KravdatoMaaFinnesHvisBosattutland( message: String, -) : UgyldigForespoerselException(code = "BOSATTUTLAND_MAA_HA_KRAVDATO", detail = message) +): UgyldigForespoerselException(code = "BOSATTUTLAND_MAA_HA_KRAVDATO", detail = message) class VirkningstidspunktMaaHaUtenlandstilknytning( message: String, -) : UgyldigForespoerselException(code = "VIRK_MAA_HA_UTENLANDSTILKNYTNING", detail = message) +): UgyldigForespoerselException(code = "VIRK_MAA_HA_UTENLANDSTILKNYTNING", detail = message) class VirkningstidspunktKanIkkeVaereEtterOpphoer( virk: YearMonth?, opphoerVirk: YearMonth?, -) : UgyldigForespoerselException( - code = "VIRK_KAN_IKKE_VAERE_ETTER_OPPHOER", - detail = "Virkningstidspunkt ($virk) kan ikke være etter opphør ($opphoerVirk)", - ) +): UgyldigForespoerselException( + code = "VIRK_KAN_IKKE_VAERE_ETTER_OPPHOER", + detail = "Virkningstidspunkt ($virk) kan ikke være etter opphør ($opphoerVirk)", +) class VirkFoerIverksattVirk( virk: YearMonth, foersteVirk: YearMonth, -) : UgyldigForespoerselException( - code = "VIRK_FOER_FOERSTE_IVERKSATT_VIRK", - detail = "Virkningstidspunktet du har satt ($virk) er før det første iverksatte virkningstidspunktet ($foersteVirk)", - ) +): UgyldigForespoerselException( + code = "VIRK_FOER_FOERSTE_IVERKSATT_VIRK", + detail = "Virkningstidspunktet du har satt ($virk) er før det første iverksatte virkningstidspunktet ($foersteVirk)", +) -class VirkFoerOmsKildePesys : +class VirkFoerOmsKildePesys: UgyldigForespoerselException( code = "VIRK_FOER_REFORM_MED_OPPRINNELSE_PESYS", detail = - "Denne saken er overført fra Pesys. Ved revurdering før 01.01.2024 må det gjøres revurdering i Pesys for perioden før og i Gjenny for perioden etter.", + "Denne saken er overført fra Pesys. Ved revurdering før 01.01.2024 må det gjøres revurdering i Pesys for perioden før og i Gjenny for perioden etter.", ) class BehandlingNotFoundException( behandlingId: UUID, -) : IkkeFunnetException( - code = "FANT_IKKE_BEHANDLING", - detail = "Kunne ikke finne ønsket behandling, id: $behandlingId", - ) +): IkkeFunnetException( + code = "FANT_IKKE_BEHANDLING", + detail = "Kunne ikke finne ønsket behandling, id: $behandlingId", +) class BehandlingKanIkkeAvbrytesException( behandlingStatus: BehandlingStatus, -) : UgyldigForespoerselException( - code = "BEHANDLING_KAN_IKKE_AVBRYTES", - detail = "Behandlingen kan ikke avbrytes, status: $behandlingStatus", - ) +): UgyldigForespoerselException( + code = "BEHANDLING_KAN_IKKE_AVBRYTES", + detail = "Behandlingen kan ikke avbrytes, status: $behandlingStatus", +) -class PersongalleriFinnesIkkeException : +class PersongalleriFinnesIkkeException: IkkeFunnetException( code = "FANT_IKKE_PERSONGALLERI", detail = "Kunne ikke finne persongalleri", ) -class KanIkkeEndreSendeBrevForFoerstegangsbehandling : +class KanIkkeEndreSendeBrevForFoerstegangsbehandling: UgyldigForespoerselException( "KAN_IKKE_ENDRE_SEND_BREV", "Kan ikke endre send brev for førstegangsbehandling, skal alltid sendes", ) -class KanIkkeOppretteRevurderingUtenIverksattFoerstegangsbehandling : +class KanIkkeOppretteRevurderingUtenIverksattFoerstegangsbehandling: UgyldigForespoerselException( "KAN_IKKE_OPPRETTE_REVURDERING_MANGLER_FOERSTEGANGSBEHANDLING_IVERKSATT", "Kan ikke opprette revurdering når man mangler føstegangsbehandling med virkningstidspunkt", ) -class VilkaarMaaFinnesHvisViderefoertOpphoer : +class VilkaarMaaFinnesHvisViderefoertOpphoer: UgyldigForespoerselException( "VIDEREFOERT_OPPHOER_MAA_HA_VILKAAR", "Vilkår må angis hvis opphør skal videreføres", ) -class PleieforholdMaaStarteFoerDetOpphoerer : +class PleieforholdMaaStarteFoerDetOpphoerer: UgyldigForespoerselException( code = "PLEIEFORHOLD_MAA_STARTE_FOER_DET_OPPHOERER", detail = "Pleieforholdet må ha startdato som er før opphørsdato", ) -class PleieforholdMaaHaStartOgOpphoer : +class PleieforholdMaaHaStartOgOpphoer: UgyldigForespoerselException( code = "PLEIEFORHOLD_MAA_HA_START_OG_OPPHOER", detail = "Pleieforholdet må ha både startdato og opphørsdato", @@ -265,6 +266,8 @@ interface BehandlingService { fun hentAapenOmregning(sakId: SakId): Revurdering? + fun endreProsesstype(behandlingId: UUID, ny: Prosesstype) + fun oppdaterTidligereFamiliepleier( behandlingId: UUID, tidligereFamiliepleier: TidligereFamiliepleier, @@ -285,7 +288,7 @@ internal class BehandlingServiceImpl( private val oppgaveService: OppgaveService, private val grunnlagService: GrunnlagServiceImpl, private val beregningKlient: BeregningKlient, -) : BehandlingService { +): BehandlingService { private val logger = LoggerFactory.getLogger(this::class.java) private fun hentBehandlingForId(id: UUID) = @@ -643,7 +646,8 @@ internal class BehandlingServiceImpl( } } - override fun hentUtlandstilknytningForSak(sakId: SakId): Utlandstilknytning? = hentBehandlingerForSakId(sakId).hentUtlandstilknytning() + override fun hentUtlandstilknytningForSak(sakId: SakId): Utlandstilknytning? = + hentBehandlingerForSakId(sakId).hentUtlandstilknytning() override fun lagreOpphoerFom( behandlingId: UUID, @@ -843,7 +847,10 @@ internal class BehandlingServiceImpl( } if (virkningstidspunktErEtterOpphoerFraOgMed(behandling.virkningstidspunkt?.dato, viderefoertOpphoer.dato)) { - throw VirkningstidspunktKanIkkeVaereEtterOpphoer(behandling.virkningstidspunkt?.dato, viderefoertOpphoer.dato) + throw VirkningstidspunktKanIkkeVaereEtterOpphoer( + behandling.virkningstidspunkt?.dato, + viderefoertOpphoer.dato + ) } behandling @@ -890,6 +897,11 @@ internal class BehandlingServiceImpl( it.status != BehandlingStatus.AVBRUTT && it.status != BehandlingStatus.IVERKSATT } + override fun endreProsesstype(behandlingId: UUID, ny: Prosesstype) { + behandlingDao.endreProsesstype(behandlingId, ny) + } + + override fun oppdaterTidligereFamiliepleier( behandlingId: UUID, tidligereFamiliepleier: TidligereFamiliepleier, @@ -915,7 +927,8 @@ internal class BehandlingServiceImpl( override fun hentTidligereFamiliepleier(behandlingId: UUID): TidligereFamiliepleier? = behandlingDao.hentTidligereFamiliepleier(behandlingId) - override fun hentAapneBehandlingerForSak(sakId: SakId): List = behandlingDao.hentAapneBehandlinger(listOf(sakId)) + override fun hentAapneBehandlingerForSak(sakId: SakId): List = + behandlingDao.hentAapneBehandlinger(listOf(sakId)) private fun hentBehandlingOrThrow(behandlingId: UUID) = behandlingDao.hentBehandling(behandlingId) @@ -967,7 +980,7 @@ internal class BehandlingServiceImpl( opplysningsType = Opplysningstype.PERSONGALLERI_V1, kilde = Grunnlagsopplysning.Saksbehandler.create(brukerTokenInfo.ident()), opplysning = - transform(forrigePersonGalleri).toJsonNode(), + transform(forrigePersonGalleri).toJsonNode(), periode = null, ), ) diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt index 3526596445b..8fcc63ad768 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt @@ -1,6 +1,7 @@ package no.nav.etterlatte.behandling.omregning import no.nav.etterlatte.behandling.BehandlingService +import no.nav.etterlatte.libs.common.behandling.Prosesstype import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException import no.nav.etterlatte.libs.common.oppgave.OppgaveType @@ -14,6 +15,7 @@ import no.nav.etterlatte.libs.ktor.token.Fagsaksystem import no.nav.etterlatte.libs.ktor.token.HardkodaSystembruker import no.nav.etterlatte.logger import no.nav.etterlatte.oppgave.OppgaveService +import java.util.UUID class OmregningService( private val behandlingService: BehandlingService, @@ -43,19 +45,13 @@ class OmregningService( } behandlingService.hentAapenOmregning(request.sakId)?.let { omregning -> - if (omregning.revurderingsaarsak == Revurderingaarsak.INNTEKTSENDRING) { - val oppgave = - oppgaveService - .hentOppgaverForReferanse(omregning.id.toString()) - .singleOrNull { it.type === OppgaveType.INNTEKTSOPPLYSNING } - ?: throw InternfeilException("Kan ikke eksistere en INNTEKTSENDRING uten oppgave") + when (omregning.revurderingsaarsak) { + Revurderingaarsak.INNTEKTSENDRING -> endreTilManuell(omregning.id) - if (oppgave.saksbehandler?.navn == Fagsaksystem.EY.navn) { - oppgaveService.fjernSaksbehandler(oppgave.id) - } - } else { - if (omregning.status.kanAvbrytes()) { - behandlingService.avbrytBehandling(omregning.id, bruker) + else -> { + if (omregning.status.kanAvbrytes()) { + behandlingService.avbrytBehandling(omregning.id, bruker) + } } } } @@ -64,6 +60,19 @@ class OmregningService( omregningDao.oppdaterKjoering(request) } + private fun endreTilManuell(behandlingId: UUID) { + val oppgave = + oppgaveService + .hentOppgaverForReferanse(behandlingId.toString()) + .singleOrNull { it.type === OppgaveType.REVURDERING } + ?: throw InternfeilException("Kan ikke eksistere en INNTEKTSENDRING uten oppgave") + + if (oppgave.saksbehandler?.navn == Fagsaksystem.EY.navn) { + oppgaveService.fjernSaksbehandler(oppgave.id) + } + behandlingService.endreProsesstype(behandlingId, Prosesstype.MANUELL) + } + fun kjoeringFullfoert(request: LagreKjoeringRequest) { if (!listOf(KjoeringStatus.FERDIGSTILT, KjoeringStatus.FERDIGSTILT_FATTET).contains(request.status)) { throw IllegalStateException("Prøver å lagre at kjøring er fullført, men status er ikke ferdigstilt.") diff --git a/apps/etterlatte-behandling/src/test/kotlin/behandling/BehandlingDaoTest.kt b/apps/etterlatte-behandling/src/test/kotlin/behandling/BehandlingDaoTest.kt index 167cd88f140..74ff001c39c 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/behandling/BehandlingDaoTest.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/behandling/BehandlingDaoTest.kt @@ -212,18 +212,18 @@ internal class BehandlingDaoTest( val gyldighetsproevingBehandling = lagretPersongalleriBehandling.copy( gyldighetsproeving = - GyldighetsResultat( - resultat = VurderingsResultat.OPPFYLT, - vurderinger = - listOf( - VurdertGyldighet( - navn = GyldighetsTyper.INNSENDER_ER_FORELDER, - resultat = VurderingsResultat.OPPFYLT, - basertPaaOpplysninger = "innsenderfnr", - ), - ), - vurdertDato = Tidspunkt.now().toLocalDatetimeUTC(), + GyldighetsResultat( + resultat = VurderingsResultat.OPPFYLT, + vurderinger = + listOf( + VurdertGyldighet( + navn = GyldighetsTyper.INNSENDER_ER_FORELDER, + resultat = VurderingsResultat.OPPFYLT, + basertPaaOpplysninger = "innsenderfnr", + ), ), + vurdertDato = Tidspunkt.now().toLocalDatetimeUTC(), + ), status = BehandlingStatus.OPPRETTET, ) @@ -639,4 +639,25 @@ internal class BehandlingDaoTest( behandling?.opphoerFraOgMed shouldBe YearMonth.of(2024, 6) } + + @Test + fun `endreProsesstype skal oppdatere behandling med ny prosesstype`() { + val sak = sakRepo.opprettSak("123", SakType.BARNEPENSJON, Enheter.defaultEnhet.enhetNr).id + val opprettBehandling = + opprettBehandling( + type = BehandlingType.REVURDERING, + revurderingAarsak = Revurderingaarsak.INNTEKTSENDRING, + sakId = sak, + status = BehandlingStatus.OPPRETTET, + prosesstype = Prosesstype.AUTOMATISK + ) + + behandlingRepo.opprettBehandling(opprettBehandling) + + behandlingRepo.endreProsesstype(opprettBehandling.id, Prosesstype.MANUELL) + + val behandling = behandlingRepo.hentBehandling(opprettBehandling.id) + + behandling?.prosesstype shouldBe Prosesstype.MANUELL + } } diff --git a/apps/etterlatte-behandling/src/test/kotlin/behandling/omregning/OmregningServiceTest.kt b/apps/etterlatte-behandling/src/test/kotlin/behandling/omregning/OmregningServiceTest.kt index 4a3f5b6d47f..cc9b43bbd39 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/behandling/omregning/OmregningServiceTest.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/behandling/omregning/OmregningServiceTest.kt @@ -1,17 +1,31 @@ package behandling.omregning +import io.mockk.every +import io.mockk.just import io.mockk.mockk +import io.mockk.runs +import io.mockk.verify import no.nav.etterlatte.ConnectionAutoclosingTest import no.nav.etterlatte.DatabaseExtension +import no.nav.etterlatte.behandling.BehandlingService +import no.nav.etterlatte.behandling.domain.Revurdering import no.nav.etterlatte.behandling.omregning.OmregningDao import no.nav.etterlatte.behandling.omregning.OmregningService import no.nav.etterlatte.common.Enheter +import no.nav.etterlatte.ktor.token.systembruker +import no.nav.etterlatte.libs.common.behandling.BehandlingStatus +import no.nav.etterlatte.libs.common.behandling.Prosesstype +import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak import no.nav.etterlatte.libs.common.behandling.SakType +import no.nav.etterlatte.libs.common.oppgave.OppgaveSaksbehandler +import no.nav.etterlatte.libs.common.oppgave.OppgaveType +import no.nav.etterlatte.libs.common.sak.KjoeringRequest import no.nav.etterlatte.libs.common.sak.KjoeringStatus import no.nav.etterlatte.libs.common.sak.LagreKjoeringRequest import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.database.toList import no.nav.etterlatte.libs.testdata.grunnlag.SOEKER_FOEDSELSNUMMER +import no.nav.etterlatte.oppgave.OppgaveService import no.nav.etterlatte.sak.SakSkrivDao import no.nav.etterlatte.sak.SakendringerDao import org.junit.jupiter.api.Assertions @@ -19,6 +33,7 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.extension.ExtendWith import java.math.BigDecimal +import java.util.UUID import javax.sql.DataSource @TestInstance(TestInstance.Lifecycle.PER_CLASS) @@ -26,6 +41,10 @@ import javax.sql.DataSource class OmregningServiceTest( val dataSource: DataSource, ) { + + val behandlingService = mockk() + val oppgaveService = mockk() + @Test fun `lagrer kjoering med all relevant informasjon`() { val connection = ConnectionAutoclosingTest(dataSource) @@ -95,4 +114,109 @@ class OmregningServiceTest( Assertions.assertEquals(request, lagraIDatabasen) } + + @Test + fun `Oppdater omregning til FEILA skal avbryte behandling`() { + val connection = ConnectionAutoclosingTest(dataSource) + + val service = + OmregningService( + behandlingService = behandlingService, + omregningDao = OmregningDao(connection), + oppgaveService = oppgaveService + ) + + val bruker = systembruker("EY") + + val sak = + SakSkrivDao( + SakendringerDao(connection) { + mockk() + }, + ).opprettSak(SOEKER_FOEDSELSNUMMER.value, SakType.BARNEPENSJON, Enheter.STEINKJER.enhetNr) + + val behandlingId = UUID.randomUUID() + val behandling = mockk() { + every { id } returns behandlingId + every { revurderingsaarsak } returns Revurderingaarsak.OMREGNING + every { status } returns BehandlingStatus.BEREGNET + } + + every { behandlingService.hentAapenOmregning(sak.id) } returns behandling + every { behandlingService.avbrytBehandling(behandlingId, bruker) } just runs + + val request = KjoeringRequest( + kjoering = "yolo", + status = KjoeringStatus.STARTA, + sakId = sak.id, + ) + service.oppdaterKjoering(request, bruker) + + request.copy(status = KjoeringStatus.FEILA).let { + service.oppdaterKjoering(it, bruker) + } + + verify { + behandlingService.avbrytBehandling(behandlingId, bruker) + } + } + + @Test + fun `Oppdater omregning til FEILA skal bytte til manuell hvis inntektsendring og fjerne EY fra oppgave`() { + val connection = ConnectionAutoclosingTest(dataSource) + + val service = + OmregningService( + behandlingService = behandlingService, + omregningDao = OmregningDao(connection), + oppgaveService = oppgaveService + ) + + val bruker = systembruker("EY") + + val sak = + SakSkrivDao( + SakendringerDao(connection) { + mockk() + }, + ).opprettSak(SOEKER_FOEDSELSNUMMER.value, SakType.BARNEPENSJON, Enheter.STEINKJER.enhetNr) + + val behandlingId = UUID.randomUUID() + val behandling = mockk() { + every { id } returns behandlingId + every { revurderingsaarsak } returns Revurderingaarsak.INNTEKTSENDRING + every { status } returns BehandlingStatus.BEREGNET + } + + every { behandlingService.hentAapenOmregning(sak.id) } returns behandling + every { behandlingService.endreProsesstype(any(), any()) } just runs + + val oppgaveId = UUID.randomUUID() + every { oppgaveService.hentOppgaverForReferanse(behandlingId.toString()) } returns listOf( + mockk { + every { id } returns oppgaveId + every { type } returns OppgaveType.REVURDERING + every { saksbehandler } returns OppgaveSaksbehandler("", "EY") + } + ) + every { oppgaveService.fjernSaksbehandler(any()) } just runs + + + val request = KjoeringRequest( + kjoering = "yolo", + status = KjoeringStatus.STARTA, + sakId = sak.id, + ) + service.oppdaterKjoering(request, bruker) + + request.copy(status = KjoeringStatus.FEILA).let { + service.oppdaterKjoering(it, bruker) + } + + verify { + oppgaveService.fjernSaksbehandler(oppgaveId) + behandlingService.endreProsesstype(behandlingId, Prosesstype.MANUELL) + } + } + } diff --git a/libs/etterlatte-ktor/src/testFixtures/kotlin/no/nav/etterlatte/ktor/token/BrukerTokenInfoTestGenerator.kt b/libs/etterlatte-ktor/src/testFixtures/kotlin/no/nav/etterlatte/ktor/token/BrukerTokenInfoTestGenerator.kt index ddeb5817fa3..5f2df803996 100644 --- a/libs/etterlatte-ktor/src/testFixtures/kotlin/no/nav/etterlatte/ktor/token/BrukerTokenInfoTestGenerator.kt +++ b/libs/etterlatte-ktor/src/testFixtures/kotlin/no/nav/etterlatte/ktor/token/BrukerTokenInfoTestGenerator.kt @@ -20,6 +20,8 @@ fun simpleSaksbehandler( fun simpleAttestant(ident: String = "attestant") = BrukerTokenInfo.of("token", ident, null, null) as Saksbehandler +fun systembruker(brukernavn: String): Systembruker = systembruker(mapOf(Claims.azp_name to brukernavn)) + fun systembruker(claims: Map = mapOf(Claims.azp_name to "systembruker1")): Systembruker = BrukerTokenInfo.of( accessToken = "token",