From 32a722d27cb6c2d1c0eb751b633299551d93a8e8 Mon Sep 17 00:00:00 2001 From: bragejahren Date: Tue, 1 Oct 2024 09:24:34 +0200 Subject: [PATCH 1/7] Tilpasser arbeidsfordelingsenhet til saksbehandler i fastsettBehandlendeEnhet fremfor i opprettOppgave. OppgaveArbeidsfordelingService -> TilpassArbeidsfordelingService. --- .../integrasjoner/oppgave/OppgaveService.kt | 38 +-- ...e.kt => TilpassArbeidsfordelingService.kt} | 80 +++--- .../ArbeidsfordelingService.kt | 21 +- .../ArbeidsfordelingP\303\245Behandling.kt" | 3 + .../familie/ba/sak/common/DataGenerator.kt | 19 ++ .../ba/sak/config/IntegrasjonClientMock.kt | 3 + .../oppgave/OppgaveServiceTest.kt | 81 +----- ... => TilpassArbeidsfordelingServiceTest.kt} | 261 +++++++++--------- .../ArbeidsfordelingServiceTest.kt | 114 ++++++++ .../ArbeidsfordelingIntegrationTest.kt | 6 +- 10 files changed, 355 insertions(+), 271 deletions(-) rename src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/{OppgaveArbeidsfordelingService.kt => TilpassArbeidsfordelingService.kt} (68%) rename src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/{OppgaveArbeidsfordelingServiceTest.kt => TilpassArbeidsfordelingServiceTest.kt} (57%) create mode 100644 src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt index 401e6cb1364..c06be353105 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt @@ -11,6 +11,7 @@ import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingenhet import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingRepository @@ -45,7 +46,7 @@ class OppgaveService( private val opprettTaskService: OpprettTaskService, private val loggService: LoggService, private val behandlingHentOgPersisterService: BehandlingHentOgPersisterService, - private val oppgaveArbeidsfordelingService: OppgaveArbeidsfordelingService, + private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService, private val arbeidsfordelingPåBehandlingRepository: ArbeidsfordelingPåBehandlingRepository, private val unleashService: UnleashService, ) { @@ -74,24 +75,19 @@ class OppgaveService( eksisterendeOppgave.gsakId } else { - val arbeidsfordelingPåBehandling = + val arbeidsfordelingsenhet = arbeidsfordelingPåBehandlingRepository .hentArbeidsfordelingPåBehandling(behandlingId) + .tilArbeidsfordelingenhet() val opprettSakPåRiktigEnhetOgSaksbehandlerToggleErPå = unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) - val oppgaveArbeidsfordeling = + val navIdent = tilordnetNavIdent?.let { NavIdent(it) } + val tilordnetRessurs = if (opprettSakPåRiktigEnhetOgSaksbehandlerToggleErPå) { - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, - navIdent = tilordnetNavIdent?.let { NavIdent(it) }, - ) + tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) } else { - OppgaveArbeidsfordeling( - navIdent = tilordnetNavIdent?.let { NavIdent(it) }, - enhetsnummer = arbeidsfordelingPåBehandling.behandlendeEnhetId, - enhetsnavn = arbeidsfordelingPåBehandling.behandlendeEnhetNavn, - ) + navIdent } val opprettOppgave = @@ -102,10 +98,10 @@ class OppgaveService( oppgavetype = oppgavetype, fristFerdigstillelse = fristForFerdigstillelse, beskrivelse = lagOppgaveTekst(fagsakId, beskrivelse), - enhetsnummer = oppgaveArbeidsfordeling.enhetsnummer, + enhetsnummer = arbeidsfordelingsenhet.enhetId, behandlingstema = behandling.tilOppgaveBehandlingTema().value, behandlingstype = behandling.kategori.tilOppgavebehandlingType().value, - tilordnetRessurs = oppgaveArbeidsfordeling.navIdent?.ident, + tilordnetRessurs = tilordnetRessurs?.ident, behandlesAvApplikasjon = when { oppgavetyperSomBehandlesAvBaSak.contains(oppgavetype) -> "familie-ba-sak" @@ -120,20 +116,6 @@ class OppgaveService( økTellerForAntallOppgaveTyper(oppgavetype) - if (opprettSakPåRiktigEnhetOgSaksbehandlerToggleErPå) { - val erEnhetsnummerEndret = arbeidsfordelingPåBehandling.behandlendeEnhetId != oppgaveArbeidsfordeling.enhetsnummer - - if (erEnhetsnummerEndret) { - arbeidsfordelingPåBehandlingRepository.save( - arbeidsfordelingPåBehandling.copy( - behandlendeEnhetId = oppgaveArbeidsfordeling.enhetsnummer, - behandlendeEnhetNavn = oppgaveArbeidsfordeling.enhetsnavn, - manueltOverstyrt = false, - ), - ) - } - } - opprettetOppgaveId } } diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt similarity index 68% rename from src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingService.kt rename to src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt index d3c74ce4b9c..91593aa8ed2 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt @@ -2,29 +2,49 @@ package no.nav.familie.ba.sak.integrasjoner.oppgave import no.nav.familie.ba.sak.common.Feil import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient +import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet.Companion.erGyldigBehandlendeBarnetrygdEnhet -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.kontrakter.felles.NavIdent import org.springframework.stereotype.Service @Service -class OppgaveArbeidsfordelingService( +class TilpassArbeidsfordelingService( private val integrasjonClient: IntegrasjonClient, ) { - fun finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling: ArbeidsfordelingPåBehandling, + fun tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet: Arbeidsfordelingsenhet, navIdent: NavIdent?, - ): OppgaveArbeidsfordeling = - when (arbeidsfordelingPåBehandling.behandlendeEnhetId) { + ): Arbeidsfordelingsenhet = + when (arbeidsfordelingsenhet.enhetId) { BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer -> håndterMidlertidigEnhet4863(navIdent) BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer -> håndterVikafossenEnhet2103(navIdent) - else -> håndterAndreEnheter(navIdent, arbeidsfordelingPåBehandling) + else -> håndterAndreEnheter(navIdent, arbeidsfordelingsenhet) } + fun bestemTilordnetRessursPåOppgave( + arbeidsfordelingsenhet: Arbeidsfordelingsenhet, + navIdent: NavIdent?, + ): NavIdent? = + if (harSaksbehandlerTilgangTilEnhet( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, + navIdent = navIdent, + ) + ) { + navIdent + } else { + null + } + + private fun harSaksbehandlerTilgangTilEnhet( + arbeidsfordelingsenhet: Arbeidsfordelingsenhet, + navIdent: NavIdent?, + ): Boolean = + navIdent?.let { integrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent).any { it.enhetsnummer == arbeidsfordelingsenhet.enhetId } } ?: false + private fun håndterMidlertidigEnhet4863( navIdent: NavIdent?, - ): OppgaveArbeidsfordeling { + ): Arbeidsfordelingsenhet { if (navIdent == null) { throw Feil("Kan ikke sette ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") } @@ -38,8 +58,7 @@ class OppgaveArbeidsfordelingService( } // Velger bare det første enhetsnummeret i tilfeller hvor man har flere, avklart med fag val nyBehandlendeEnhet = enheterNavIdentHarTilgangTil.first() - return OppgaveArbeidsfordeling( - navIdent, + return Arbeidsfordelingsenhet( nyBehandlendeEnhet.enhetsnummer, nyBehandlendeEnhet.enhetsnavn, ) @@ -47,7 +66,7 @@ class OppgaveArbeidsfordelingService( private fun håndterVikafossenEnhet2103( navIdent: NavIdent?, - ): OppgaveArbeidsfordeling { + ): Arbeidsfordelingsenhet { if (navIdent == null) { throw Feil("Kan ikke sette ${BarnetrygdEnhet.VIKAFOSSEN} om man mangler NAV-ident") } @@ -57,14 +76,12 @@ class OppgaveArbeidsfordelingService( .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } .any { it.enhetsnummer == BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } if (!harTilgangTilVikafossenEnhet2103) { - return OppgaveArbeidsfordeling( - null, + return Arbeidsfordelingsenhet( BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, ) } - return OppgaveArbeidsfordeling( - navIdent, + return Arbeidsfordelingsenhet( BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, ) @@ -72,14 +89,13 @@ class OppgaveArbeidsfordelingService( private fun håndterAndreEnheter( navIdent: NavIdent?, - arbeidsfordelingPåBehandling: ArbeidsfordelingPåBehandling, - ): OppgaveArbeidsfordeling { + arbeidsfordelingsenhet: Arbeidsfordelingsenhet, + ): Arbeidsfordelingsenhet { if (navIdent == null) { // navIdent er null ved automatisk journalføring - return OppgaveArbeidsfordeling( - null, - arbeidsfordelingPåBehandling.behandlendeEnhetId, - arbeidsfordelingPåBehandling.behandlendeEnhetNavn, + return Arbeidsfordelingsenhet( + arbeidsfordelingsenhet.enhetId, + arbeidsfordelingsenhet.enhetNavn, ) } val enheterNavIdentHarTilgangTil = @@ -92,31 +108,19 @@ class OppgaveArbeidsfordelingService( } val harTilgangTilBehandledeEnhet = enheterNavIdentHarTilgangTil.any { - it.enhetsnummer == arbeidsfordelingPåBehandling.behandlendeEnhetId + it.enhetsnummer == arbeidsfordelingsenhet.enhetId } if (!harTilgangTilBehandledeEnhet) { // Velger bare det første enhetsnummeret i tilfeller hvor man har flere, avklart med fag val nyBehandlendeEnhet = enheterNavIdentHarTilgangTil.first() - return OppgaveArbeidsfordeling( - navIdent, + return Arbeidsfordelingsenhet( nyBehandlendeEnhet.enhetsnummer, nyBehandlendeEnhet.enhetsnavn, ) } - return OppgaveArbeidsfordeling( - navIdent, - arbeidsfordelingPåBehandling.behandlendeEnhetId, - arbeidsfordelingPåBehandling.behandlendeEnhetNavn, + return Arbeidsfordelingsenhet( + arbeidsfordelingsenhet.enhetId, + arbeidsfordelingsenhet.enhetNavn, ) } } - -data class OppgaveArbeidsfordeling( - val navIdent: NavIdent?, - val enhetsnummer: String, - val enhetsnavn: String, -) { - init { - require(enhetsnummer.length == 4) { "Enhetsnummer må være 4 siffer" } - } -} diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt index 0933b267adf..7eb2714cb8c 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt @@ -3,9 +3,11 @@ package no.nav.familie.ba.sak.kjerne.arbeidsfordeling import no.nav.familie.ba.sak.common.Feil import no.nav.familie.ba.sak.common.PdlPersonKanIkkeBehandlesIFagsystem import no.nav.familie.ba.sak.common.secureLogger +import no.nav.familie.ba.sak.config.FeatureToggleConfig import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.integrasjoner.oppgave.OppgaveService +import no.nav.familie.ba.sak.integrasjoner.oppgave.TilpassArbeidsfordelingService import no.nav.familie.ba.sak.integrasjoner.pdl.PersonopplysningerService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository @@ -16,8 +18,11 @@ import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.barn import no.nav.familie.ba.sak.kjerne.logg.LoggService import no.nav.familie.ba.sak.kjerne.personident.Aktør import no.nav.familie.ba.sak.kjerne.personident.PersonidentService +import no.nav.familie.ba.sak.sikkerhet.SikkerhetContext import no.nav.familie.ba.sak.statistikk.saksstatistikk.SaksstatistikkEventPublisher +import no.nav.familie.kontrakter.felles.NavIdent import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING +import no.nav.familie.unleash.UnleashService import org.slf4j.LoggerFactory import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional @@ -32,6 +37,8 @@ class ArbeidsfordelingService( private val integrasjonClient: IntegrasjonClient, private val personopplysningerService: PersonopplysningerService, private val saksstatistikkEventPublisher: SaksstatistikkEventPublisher, + private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService, + private val unleashService: UnleashService, ) { @Transactional fun manueltOppdaterBehandlendeEnhet( @@ -91,7 +98,13 @@ class ArbeidsfordelingService( aktivArbeidsfordelingPåBehandling, ) } else { - val arbeidsfordelingsenhet = hentArbeidsfordelingsenhet(behandling) + val arbeidsfordelingsenhet = + if (unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false)) { + val arbeidsfordelingsenhet = hentArbeidsfordelingsenhet(behandling) + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler(arbeidsfordelingsenhet, NavIdent(SikkerhetContext.hentSaksbehandler())) + } else { + hentArbeidsfordelingsenhet(behandling) + } when (aktivArbeidsfordelingPåBehandling) { null -> { @@ -127,6 +140,12 @@ class ArbeidsfordelingService( ) } + private fun Arbeidsfordelingsenhet.tilpassArbeidsfordelingsenhetTilSaksbehandler(): Arbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = this, + navIdent = NavIdent(SikkerhetContext.hentSaksbehandler()), + ) + private fun fastsettArbeidsfordelingsenhetPåSatsendringsbehandling( behandling: Behandling, sisteBehandlingSomErIverksatt: Behandling?, diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" index 9e894a4f353..7f0d047f0aa 100644 --- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" +++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" @@ -8,6 +8,7 @@ import jakarta.persistence.GenerationType import jakarta.persistence.Id import jakarta.persistence.SequenceGenerator import jakarta.persistence.Table +import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.sikkerhet.RollestyringMotDatabase @EntityListeners(RollestyringMotDatabase::class) @@ -35,3 +36,5 @@ data class ArbeidsfordelingPåBehandling( fun toSecureString(): String = "ArbeidsfordelingPåBehandling(id=$id, behandlendeEnhetId=$behandlendeEnhetId, behandlendeEnhetNavn=$behandlendeEnhetNavn, manueltOverstyrt=$manueltOverstyrt)" } + +fun ArbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() = Arbeidsfordelingsenhet(enhetId = this.behandlendeEnhetId, enhetNavn = this.behandlendeEnhetNavn) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt index 70723b50b85..e14e6ad6e1c 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/common/DataGenerator.kt @@ -1247,6 +1247,25 @@ fun lagPerson( id = id, ) +fun lagPersonEnkel( + personType: PersonType, + aktør: Aktør = randomAktør(), +): PersonEnkel = + PersonEnkel( + type = personType, + aktør = aktør, + dødsfallDato = null, + fødselsdato = + if (personType == PersonType.SØKER) { + LocalDate.now().minusYears(34) + } else { + LocalDate + .now() + .minusYears(4) + }, + målform = Målform.NB, + ) + fun lagRestSanityBegrunnelse( apiNavn: String = "", navnISystem: String = "", diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt index f328e6ad4fe..8268e863fe6 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt @@ -17,6 +17,7 @@ import no.nav.familie.ba.sak.integrasjoner.lagTestJournalpost import no.nav.familie.ba.sak.integrasjoner.lagTestOppgaveDTO import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.kontrakter.felles.dokarkiv.ArkiverDokumentResponse +import no.nav.familie.kontrakter.felles.enhet.Enhet import no.nav.familie.kontrakter.felles.kodeverk.BeskrivelseDto import no.nav.familie.kontrakter.felles.kodeverk.BetydningDto import no.nav.familie.kontrakter.felles.kodeverk.KodeverkDto @@ -180,6 +181,8 @@ class IntegrasjonClientMock { "Testinstitusjon", ) } + + every { mockIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(any()) } returns BarnetrygdEnhet.entries.map { Enhet(it.enhetsnummer, it.enhetsnavn) } } fun clearMockFamilieIntegrasjonerTilgangskontrollClient(mockFamilieIntegrasjonerTilgangskontrollClient: FamilieIntegrasjonerTilgangskontrollClient) { diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt index 7f89d6c66a0..b43532a9295 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt @@ -13,9 +13,9 @@ import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClien import no.nav.familie.ba.sak.integrasjoner.lagTestOppgaveDTO import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingenhet import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingKategori @@ -57,7 +57,7 @@ class OppgaveServiceTest { private val mockedOppgaveRepository: OppgaveRepository = mockk() private val mockedOpprettTaskService: OpprettTaskService = mockk() private val mockedLoggService: LoggService = mockk() - private val mockedOppgaveArbeidsfordelingService: OppgaveArbeidsfordelingService = mockk() + private val mockedTilpassArbeidsfordelingService: TilpassArbeidsfordelingService = mockk() private val unleashService: UnleashService = mockk() private val oppgaveService: OppgaveService = OppgaveService( @@ -67,7 +67,7 @@ class OppgaveServiceTest { opprettTaskService = mockedOpprettTaskService, loggService = mockedLoggService, behandlingHentOgPersisterService = mockedBehandlingHentOgPersisterService, - oppgaveArbeidsfordelingService = mockedOppgaveArbeidsfordelingService, + tilpassArbeidsfordelingService = mockedTilpassArbeidsfordelingService, arbeidsfordelingPåBehandlingRepository = mockedArbeidsfordelingPåBehandlingRepository, unleashService = unleashService, ) @@ -83,6 +83,9 @@ class OppgaveServiceTest { manueltOverstyrt = true, ) + val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() + val navIdent = NavIdent("navIdent") + every { mockedBehandlingHentOgPersisterService.hent(BEHANDLING_ID) } returns lagTestBehandling(aktørId = AKTØR_ID_FAGSAK) every { mockedBehandlingHentOgPersisterService.lagreEllerOppdater(any()) } returns lagTestBehandling() every { mockedOppgaveRepository.save(any()) } returns lagTestOppgave() @@ -93,9 +96,7 @@ class OppgaveServiceTest { val opprettOppgaveRequestSlot = slot() every { mockedIntegrasjonClient.opprettOppgave(capture(opprettOppgaveRequestSlot)) } returns OppgaveResponse(OPPGAVE_ID.toLong()) - every { - mockedOppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave(arbeidsfordelingPåBehandling, null) - } returns OppgaveArbeidsfordeling(null, arbeidsfordelingPåBehandling.behandlendeEnhetId, arbeidsfordelingPåBehandling.behandlendeEnhetNavn) + every { mockedTilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, null) } returns null every { unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) } returns true @@ -121,68 +122,6 @@ class OppgaveServiceTest { verify(exactly = 0) { mockedArbeidsfordelingPåBehandlingRepository.save(any()) } } - @Test - fun `Opprett oppgave skal lage oppgave med NAV-ident samt enhetsnummer og enhetsnavn som er ulik arbeidsfordelingen da NAV-ident ikke har tilgang til den`() { - // Arrange - val navIdent = NavIdent("1") - val enhetsnummerSomSkalOverstyresTil = "1234" - val enhetsnavnSomSkalOverstyresTil = "Fiktiv Enhet" - - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = 1, - behandlendeEnhetId = ENHETSNUMMER, - behandlendeEnhetNavn = "enhet", - manueltOverstyrt = true, - ) - - every { mockedBehandlingHentOgPersisterService.hent(BEHANDLING_ID) } returns lagTestBehandling(aktørId = AKTØR_ID_FAGSAK) - every { mockedBehandlingHentOgPersisterService.lagreEllerOppdater(any()) } returns lagTestBehandling() - every { mockedOppgaveRepository.save(any()) } returns lagTestOppgave() - every { mockedOppgaveRepository.findByOppgavetypeAndBehandlingAndIkkeFerdigstilt(any(), any()) } returns null - every { mockedPersonidentService.hentAktør(any()) } returns Aktør(AKTØR_ID_FAGSAK) - every { mockedArbeidsfordelingPåBehandlingRepository.hentArbeidsfordelingPåBehandling(any()) } returns arbeidsfordelingPåBehandling - - val opprettOppgaveRequestSlot = slot() - every { mockedIntegrasjonClient.opprettOppgave(capture(opprettOppgaveRequestSlot)) } returns OppgaveResponse(OPPGAVE_ID.toLong()) - - every { - mockedOppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave(arbeidsfordelingPåBehandling, navIdent) - } returns OppgaveArbeidsfordeling(navIdent, enhetsnummerSomSkalOverstyresTil, enhetsnavnSomSkalOverstyresTil) - - val arbeidsfordelingPåBehandlingSlot = slot() - every { - mockedArbeidsfordelingPåBehandlingRepository.save(capture(arbeidsfordelingPåBehandlingSlot)) - } returnsArgument 0 - - every { unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) } returns true - - // Act - oppgaveService.opprettOppgave(BEHANDLING_ID, Oppgavetype.BehandleSak, FRIST_FERDIGSTILLELSE_BEH_SAK, navIdent.ident) - - // Assert - assertThat(opprettOppgaveRequestSlot.captured.enhetsnummer).isEqualTo(enhetsnummerSomSkalOverstyresTil) - assertThat(opprettOppgaveRequestSlot.captured.saksId).isEqualTo(FAGSAK_ID.toString()) - assertThat(opprettOppgaveRequestSlot.captured.ident).isEqualTo( - OppgaveIdentV2( - ident = AKTØR_ID_FAGSAK, - gruppe = IdentGruppe.AKTOERID, - ), - ) - assertThat(opprettOppgaveRequestSlot.captured.behandlingstema).isEqualTo(Behandlingstema.OrdinærBarnetrygd.value) - assertThat(opprettOppgaveRequestSlot.captured.fristFerdigstillelse).isEqualTo(LocalDate.now().plusDays(1)) - assertThat(opprettOppgaveRequestSlot.captured.aktivFra).isEqualTo(LocalDate.now()) - assertThat(opprettOppgaveRequestSlot.captured.tema).isEqualTo(Tema.BAR) - assertThat(opprettOppgaveRequestSlot.captured.beskrivelse).contains("https://barnetrygd.intern.nav.no/fagsak/$FAGSAK_ID") - assertThat(opprettOppgaveRequestSlot.captured.behandlesAvApplikasjon).isEqualTo("familie-ba-sak") - assertThat(opprettOppgaveRequestSlot.captured.tilordnetRessurs).isEqualTo(navIdent.ident) - assertThat(arbeidsfordelingPåBehandlingSlot.captured.id).isEqualTo(arbeidsfordelingPåBehandling.id) - assertThat(arbeidsfordelingPåBehandlingSlot.captured.behandlingId).isEqualTo(arbeidsfordelingPåBehandling.behandlingId) - assertThat(arbeidsfordelingPåBehandlingSlot.captured.behandlendeEnhetId).isEqualTo(enhetsnummerSomSkalOverstyresTil) - assertThat(arbeidsfordelingPåBehandlingSlot.captured.behandlendeEnhetNavn).isEqualTo(enhetsnavnSomSkalOverstyresTil) - assertThat(arbeidsfordelingPåBehandlingSlot.captured.manueltOverstyrt).isFalse() - } - @ParameterizedTest @EnumSource(ManuellOppgaveType::class) fun `Opprett oppgave med manuell oppgavetype skal lage oppgave med behandlesAvApplikasjon satt for småbarnstillegg og åpen behandling, men ikke fødselshendelse`(manuellOppgaveType: ManuellOppgaveType) { @@ -195,6 +134,8 @@ class OppgaveServiceTest { manueltOverstyrt = false, ) + val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() + every { mockedBehandlingHentOgPersisterService.hent(BEHANDLING_ID) } returns lagTestBehandling(aktørId = AKTØR_ID_FAGSAK) every { mockedBehandlingHentOgPersisterService.lagreEllerOppdater(any()) } returns lagTestBehandling() every { mockedOppgaveRepository.save(any()) } returns lagTestOppgave() @@ -210,9 +151,7 @@ class OppgaveServiceTest { val opprettOppgaveRequestSlot = slot() every { mockedIntegrasjonClient.opprettOppgave(capture(opprettOppgaveRequestSlot)) } returns OppgaveResponse(OPPGAVE_ID.toLong()) - every { - mockedOppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave(arbeidsfordelingPåBehandling, null) - } returns OppgaveArbeidsfordeling(null, arbeidsfordelingPåBehandling.behandlendeEnhetId, arbeidsfordelingPåBehandling.behandlendeEnhetNavn) + every { mockedTilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, null) } returns null every { unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) } returns true diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt similarity index 57% rename from src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingServiceTest.kt rename to src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt index 81bc61950ca..039c58057dc 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt @@ -3,39 +3,38 @@ package no.nav.familie.ba.sak.integrasjoner.oppgave import io.mockk.every import io.mockk.mockk import no.nav.familie.ba.sak.common.Feil -import no.nav.familie.ba.sak.datagenerator.oppgave.lagArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.datagenerator.oppgave.lagEnhet import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient +import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent +import no.nav.familie.kontrakter.felles.enhet.Enhet import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows -class OppgaveArbeidsfordelingServiceTest { +class TilpassArbeidsfordelingServiceTest { private val mockedIntegrasjonClient: IntegrasjonClient = mockk() - private val oppgaveArbeidsfordelingService: OppgaveArbeidsfordelingService = OppgaveArbeidsfordelingService(integrasjonClient = mockedIntegrasjonClient) + private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService = TilpassArbeidsfordelingService(integrasjonClient = mockedIntegrasjonClient) @Nested - inner class FinnArbeidsfordelingForOppgaveTest { + inner class TilpassArbeidsfordelingTilSaksbehandler { @Test fun `skal kaste feil om arbeidsfordeling returnerer midlertidig enhet 4863 og NAV-ident er null`() { // Arrange - val behandlingId = 1L val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, + enhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, ) // Act & assert val exception = assertThrows { - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingPåBehandling, navIdent = null, ) } @@ -45,17 +44,15 @@ class OppgaveArbeidsfordelingServiceTest { @Test fun `skal kaste feil om arbeidsfordeling returnerer midlertidig enhet 4863 og NAV-ident ikke har tilgang til noen andre enheter enn 4863 og 2103`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") val enhetNavIdentHarTilgangTil1 = BarnetrygdEnhet.MIDLERTIDIG_ENHET val enhetNavIdentHarTilgangTil2 = BarnetrygdEnhet.VIKAFOSSEN - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, + enhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, ) every { @@ -77,8 +74,8 @@ class OppgaveArbeidsfordelingServiceTest { // Act & assert val exception = assertThrows { - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) } @@ -88,17 +85,15 @@ class OppgaveArbeidsfordelingServiceTest { @Test fun `skal returnere NAV-ident og første enhetsnummer som NAV-identen har tilgang til når arbeidsfordeling returnerer midlertidig enhet 4863`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") val enhetNavIdentHarTilgangTil1 = BarnetrygdEnhet.OSLO val enhetNavIdentHarTilgangTil2 = BarnetrygdEnhet.DRAMMEN - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, + enhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, ) every { @@ -126,35 +121,32 @@ class OppgaveArbeidsfordelingServiceTest { ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isEqualTo(navIdent) - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnummer) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnummer) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnavn) } @Test fun `skal kaste feil hvis arbeidsfordeling returnerer Vikafossen 2103 og NAV-ident er null`() { // Arrange - val behandlingId = 1L - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, ) // Act & assert val exception = assertThrows { - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = null, ) } @@ -164,17 +156,15 @@ class OppgaveArbeidsfordelingServiceTest { @Test fun `skal returnere Vikafossen 2103 uten NAV-ident om arbeidsfordeling returnerer Vikafossen 2103 og NAV-ident ikke har tilgang til Vikafossen 2103`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") val enhetNavIdentHarTilgangTil1 = BarnetrygdEnhet.STEINKJER val enhetNavIdentHarTilgangTil2 = BarnetrygdEnhet.VADSØ - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, ) every { @@ -194,29 +184,26 @@ class OppgaveArbeidsfordelingServiceTest { ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isNull() - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) } @Test fun `skal returnere Vikafossen 2103 med NAV-ident om arbeidsfordeling returnerer Vikafossen 2103 og NAV-ident har tilgang til Vikafossen 2103`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, ) every { @@ -236,54 +223,47 @@ class OppgaveArbeidsfordelingServiceTest { ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isEqualTo(navIdent) - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) } @Test fun `skal returnere behandlendeEnhetId uten NAV-ident om arbeidsfordeling ikke returnere 2103 eller 4863 og NAV-ident er null`() { // Arrange - val behandlingId = 1L - - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = "1234", - behandlendeEnhetNavn = "Fiktiv enhet", + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = "1234", + enhetNavn = "Fiktiv enhet", ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = null, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isNull() - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(arbeidsfordelingPåBehandling.behandlendeEnhetId) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(arbeidsfordelingPåBehandling.behandlendeEnhetNavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(arbeidsfordelingsenhet.enhetId) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(arbeidsfordelingsenhet.enhetNavn) } @Test fun `skal kaste feil om arbeidsfordeling ikke returnere 2103 eller 4863 og NAV-ident ikke har tilgang til noen enheter`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = "1234", - behandlendeEnhetNavn = "Fiktiv enhet", + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = "1234", + enhetNavn = "Fiktiv enhet", ) every { @@ -305,8 +285,8 @@ class OppgaveArbeidsfordelingServiceTest { // Act & assert val exception = assertThrows { - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) } @@ -316,17 +296,15 @@ class OppgaveArbeidsfordelingServiceTest { @Test fun `skal returnere NAV-ident og første enhet NAV-ident har tilgang om arbeidsfordeling ikke returnere 2103 eller 4863 og NAV-ident ikke har tilgang arbeidsfordeling enheten`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") val enhetNavIdentHarTilgangTil1 = BarnetrygdEnhet.OSLO val enhetNavIdentHarTilgangTil2 = BarnetrygdEnhet.DRAMMEN - val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = BarnetrygdEnhet.STEINKJER.enhetsnummer, - behandlendeEnhetNavn = BarnetrygdEnhet.STEINKJER.enhetsnavn, + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.STEINKJER.enhetsnummer, + enhetNavn = BarnetrygdEnhet.STEINKJER.enhetsnavn, ) every { @@ -354,31 +332,28 @@ class OppgaveArbeidsfordelingServiceTest { ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isEqualTo(navIdent) - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnummer) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnummer) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(enhetNavIdentHarTilgangTil1.enhetsnavn) } @Test fun `skal returnere NAV-ident og arbeidsfordeling enhetsnummer om arbeidsfordeling ikke returnere 2103 eller 4863 og NAV-ident har tilgang arbeidsfordeling enheten`() { // Arrange - val behandlingId = 1L val navIdent = NavIdent("1") val arbeidsfordelingEnhet = BarnetrygdEnhet.OSLO val arbeidsfordelingPåBehandling = - lagArbeidsfordelingPåBehandling( - behandlingId = behandlingId, - behandlendeEnhetId = arbeidsfordelingEnhet.enhetsnummer, - behandlendeEnhetNavn = arbeidsfordelingEnhet.enhetsnavn, + Arbeidsfordelingsenhet( + enhetId = arbeidsfordelingEnhet.enhetsnummer, + enhetNavn = arbeidsfordelingEnhet.enhetsnavn, ) every { @@ -402,47 +377,73 @@ class OppgaveArbeidsfordelingServiceTest { ) // Act - val oppgaveArbeidsfordeling = - oppgaveArbeidsfordelingService.finnArbeidsfordelingForOppgave( - arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandling, + val tilpassetArbeidsfordelingsenhet = + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingPåBehandling, navIdent = navIdent, ) // Assert - assertThat(oppgaveArbeidsfordeling.navIdent).isEqualTo(navIdent) - assertThat(oppgaveArbeidsfordeling.enhetsnummer).isEqualTo(arbeidsfordelingEnhet.enhetsnummer) - assertThat(oppgaveArbeidsfordeling.enhetsnavn).isEqualTo(arbeidsfordelingEnhet.enhetsnavn) + assertThat(tilpassetArbeidsfordelingsenhet.enhetId).isEqualTo(arbeidsfordelingEnhet.enhetsnummer) + assertThat(tilpassetArbeidsfordelingsenhet.enhetNavn).isEqualTo(arbeidsfordelingEnhet.enhetsnavn) } } @Nested - inner class OppgaveArbeidsfordelingTest { + inner class BestemTilordnetRessursPåOppgave { @Test - fun `skal kaste exception om enhetsnummer blir satt til mindre enn 4 siffer`() { - // Act & assert - val exception = - assertThrows { - OppgaveArbeidsfordeling( - null, - "123", - "Enhet 123", - ) - } - assertThat(exception.message).isEqualTo("Enhetsnummer må være 4 siffer") + fun `skal returnere navIdent dersom navIdent har tilgang til arbeidsfordelingsenhet`() { + // Arrange + val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val navIdent = NavIdent("1") + + every { mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns + listOf( + Enhet( + enhetsnummer = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetsnavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + ), + ) + + // Act + val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + + // Assert + assertThat(tilordnetRessurs).isEqualTo(navIdent) } @Test - fun `skal kaste exception om enhetsnummer blir satt til mer enn 4 siffer`() { - // Act & assert - val exception = - assertThrows { - OppgaveArbeidsfordeling( - null, - "12345", - "Enhet 12345", - ) - } - assertThat(exception.message).isEqualTo("Enhetsnummer må være 4 siffer") + fun `skal returnere null dersom navIdent ikke har tilgang til arbeidsfordelingsenhet`() { + // Arrange + val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val navIdent = NavIdent("1") + + every { mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns + listOf( + Enhet( + enhetsnummer = BarnetrygdEnhet.OSLO.enhetsnummer, + enhetsnavn = BarnetrygdEnhet.OSLO.enhetsnavn, + ), + ) + + // Act + val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + + // Assert + assertThat(tilordnetRessurs).isNull() + } + + @Test + fun `skal returnere null dersom navIdent er null`() { + // Arrange + val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val navIdent = null + + // Act + val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + + // Assert + assertThat(tilordnetRessurs).isNull() } } } diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt new file mode 100644 index 00000000000..67ae027cc46 --- /dev/null +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt @@ -0,0 +1,114 @@ +package no.nav.familie.ba.sak.kjerne.arbeidsfordeling + +import io.mockk.every +import io.mockk.mockk +import io.mockk.slot +import no.nav.familie.ba.sak.common.lagPersonEnkel +import no.nav.familie.ba.sak.config.FeatureToggleConfig +import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient +import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet +import no.nav.familie.ba.sak.integrasjoner.oppgave.OppgaveService +import no.nav.familie.ba.sak.integrasjoner.oppgave.TilpassArbeidsfordelingService +import no.nav.familie.ba.sak.integrasjoner.pdl.PersonopplysningerService +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository +import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonType +import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlagRepository +import no.nav.familie.ba.sak.kjerne.logg.LoggService +import no.nav.familie.ba.sak.kjerne.personident.PersonidentService +import no.nav.familie.ba.sak.kjerne.simulering.lagBehandling +import no.nav.familie.ba.sak.sikkerhet.SikkerhetContext +import no.nav.familie.ba.sak.statistikk.saksstatistikk.SaksstatistikkEventPublisher +import no.nav.familie.kontrakter.felles.NavIdent +import no.nav.familie.unleash.UnleashService +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test + +class ArbeidsfordelingServiceTest { + private val arbeidsfordelingPåBehandlingRepository: ArbeidsfordelingPåBehandlingRepository = mockk() + private val personopplysningGrunnlagRepository: PersonopplysningGrunnlagRepository = mockk() + private val personidentService: PersonidentService = mockk() + private val oppgaveService: OppgaveService = mockk() + private val loggService: LoggService = mockk() + private val integrasjonClient: IntegrasjonClient = mockk() + private val personopplysningerService: PersonopplysningerService = mockk() + private val saksstatistikkEventPublisher: SaksstatistikkEventPublisher = mockk() + private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService = mockk() + private val unleashService: UnleashService = mockk() + + private val arbeidsfordelingService: ArbeidsfordelingService = + ArbeidsfordelingService( + arbeidsfordelingPåBehandlingRepository = arbeidsfordelingPåBehandlingRepository, + personopplysningGrunnlagRepository = personopplysningGrunnlagRepository, + personidentService = personidentService, + oppgaveService = oppgaveService, + loggService = loggService, + integrasjonClient = integrasjonClient, + personopplysningerService = personopplysningerService, + saksstatistikkEventPublisher = saksstatistikkEventPublisher, + tilpassArbeidsfordelingService = tilpassArbeidsfordelingService, + unleashService = unleashService, + ) + + @Nested + inner class FastsettBehandlendeEnhet { + @Test + fun `skal overstyre behandlende enhet fra NORG dersom enhet fra finnArbeidsfordelingForOppgave er en annen`() { + // Arrange + val behandling = lagBehandling() + val søker = lagPersonEnkel(PersonType.SØKER, behandling.fagsak.aktør) + val barn = lagPersonEnkel(PersonType.BARN) + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, + enhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, + ) + + val oppdatertArbeidsfordelingPåBehandling = mockk() + + every { + arbeidsfordelingPåBehandlingRepository.finnArbeidsfordelingPåBehandling(behandling.id) + } returns null + + every { + unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) + } returns true + + every { personopplysningerService.hentPersoninfoEnkel(any()).adressebeskyttelseGradering } returns null + + every { + personopplysningGrunnlagRepository + .finnSøkerOgBarnAktørerTilAktiv(behandling.id) + } returns listOf(søker, barn) + + every { integrasjonClient.hentBehandlendeEnhet(søker.aktør.aktivFødselsnummer()) } returns + listOf( + arbeidsfordelingsenhet, + ) + + every { + tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( + arbeidsfordelingsenhet = arbeidsfordelingsenhet, + navIdent = NavIdent(SikkerhetContext.hentSaksbehandler()), + ) + } returns Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.OSLO.enhetsnummer, enhetNavn = BarnetrygdEnhet.OSLO.enhetsnavn) + + val arbeidsfordelingPåBehandlingSlot = slot() + + every { + arbeidsfordelingPåBehandlingRepository.save(capture(arbeidsfordelingPåBehandlingSlot)) + } returns oppdatertArbeidsfordelingPåBehandling + + every { oppdatertArbeidsfordelingPåBehandling.toSecureString() } returns "" + + // Act + arbeidsfordelingService.fastsettBehandlendeEnhet(behandling, null) + + // Assert + val arbeidsfordelingPåBehandling = arbeidsfordelingPåBehandlingSlot.captured + assertThat(arbeidsfordelingPåBehandling.behandlendeEnhetId).isEqualTo(BarnetrygdEnhet.OSLO.enhetsnummer) + assertThat(arbeidsfordelingPåBehandling.behandlendeEnhetNavn).isEqualTo(BarnetrygdEnhet.OSLO.enhetsnavn) + } + } +} diff --git a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingIntegrationTest.kt b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingIntegrationTest.kt index 6f4f9e0d6cb..3c0e94a9ab2 100644 --- a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingIntegrationTest.kt +++ b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingIntegrationTest.kt @@ -344,9 +344,9 @@ class ArbeidsfordelingIntegrationTest( val søkerAktør = randomAktør() companion object { - const val MANUELT_OVERSTYRT_ENHET = "1234" - const val IKKE_FORTROLIG_ENHET = "4820" - const val FORTROLIG_ENHET = "1122" + val MANUELT_OVERSTYRT_ENHET = BarnetrygdEnhet.OSLO.enhetsnummer + val IKKE_FORTROLIG_ENHET = BarnetrygdEnhet.DRAMMEN.enhetsnummer + val FORTROLIG_ENHET = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer val SØKER_FNR = randomFnr() val BARN_UTEN_DISKRESJONSKODE = randomFnr() val BARN_MED_DISKRESJONSKODE = randomFnr() From 516abf4fca382e1824d729860efa871b83dccc1f Mon Sep 17 00:00:00 2001 From: bragejahren Date: Tue, 1 Oct 2024 12:04:56 +0200 Subject: [PATCH 2/7] Renamer extension metode og justerer linjeskift --- .../familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt | 4 ++-- .../integrasjoner/oppgave/TilpassArbeidsfordelingService.kt | 5 +---- .../domene/ArbeidsfordelingP\303\245Behandling.kt" | 2 +- .../ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt | 6 +++--- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt index c06be353105..82914fc1007 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt @@ -11,7 +11,7 @@ import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingenhet +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingsenhet import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingRepository @@ -78,7 +78,7 @@ class OppgaveService( val arbeidsfordelingsenhet = arbeidsfordelingPåBehandlingRepository .hentArbeidsfordelingPåBehandling(behandlingId) - .tilArbeidsfordelingenhet() + .tilArbeidsfordelingsenhet() val opprettSakPåRiktigEnhetOgSaksbehandlerToggleErPå = unleashService.isEnabled(FeatureToggleConfig.OPPRETT_SAK_PÅ_RIKTIG_ENHET_OG_SAKSBEHANDLER, false) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt index 91593aa8ed2..7931aa249ac 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt @@ -26,10 +26,7 @@ class TilpassArbeidsfordelingService( arbeidsfordelingsenhet: Arbeidsfordelingsenhet, navIdent: NavIdent?, ): NavIdent? = - if (harSaksbehandlerTilgangTilEnhet( - arbeidsfordelingsenhet = arbeidsfordelingsenhet, - navIdent = navIdent, - ) + if (harSaksbehandlerTilgangTilEnhet(arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent) ) { navIdent } else { diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" index 7f0d047f0aa..c71bf84a09b 100644 --- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" +++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/domene/ArbeidsfordelingP\303\245Behandling.kt" @@ -37,4 +37,4 @@ data class ArbeidsfordelingPåBehandling( fun toSecureString(): String = "ArbeidsfordelingPåBehandling(id=$id, behandlendeEnhetId=$behandlendeEnhetId, behandlendeEnhetNavn=$behandlendeEnhetNavn, manueltOverstyrt=$manueltOverstyrt)" } -fun ArbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() = Arbeidsfordelingsenhet(enhetId = this.behandlendeEnhetId, enhetNavn = this.behandlendeEnhetNavn) +fun ArbeidsfordelingPåBehandling.tilArbeidsfordelingsenhet(): Arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = this.behandlendeEnhetId, enhetNavn = this.behandlendeEnhetNavn) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt index b43532a9295..53cb0075259 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt @@ -15,7 +15,7 @@ import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingenhet +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingsenhet import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingKategori @@ -83,7 +83,7 @@ class OppgaveServiceTest { manueltOverstyrt = true, ) - val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() + val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingsenhet() val navIdent = NavIdent("navIdent") every { mockedBehandlingHentOgPersisterService.hent(BEHANDLING_ID) } returns lagTestBehandling(aktørId = AKTØR_ID_FAGSAK) @@ -134,7 +134,7 @@ class OppgaveServiceTest { manueltOverstyrt = false, ) - val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingenhet() + val arbeidsfordelingsenhet = arbeidsfordelingPåBehandling.tilArbeidsfordelingsenhet() every { mockedBehandlingHentOgPersisterService.hent(BEHANDLING_ID) } returns lagTestBehandling(aktørId = AKTØR_ID_FAGSAK) every { mockedBehandlingHentOgPersisterService.lagreEllerOppdater(any()) } returns lagTestBehandling() From 247a4374a16adf9380aa9d7f41d967fd2bcd4a3a Mon Sep 17 00:00:00 2001 From: bragejahren Date: Tue, 1 Oct 2024 15:12:58 +0200 Subject: [PATCH 3/7] =?UTF-8?q?Sm=C3=A5=20justeringer/forenklinger=20av=20?= =?UTF-8?q?kode=20i=20TilpassArbeidsfordelingService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oppgave/TilpassArbeidsfordelingService.kt | 38 ++++++++----------- .../TilpassArbeidsfordelingServiceTest.kt | 4 +- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt index 7931aa249ac..5387adfaf8a 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt @@ -6,6 +6,7 @@ import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfo import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet.Companion.erGyldigBehandlendeBarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent +import no.nav.familie.kontrakter.felles.enhet.Enhet import org.springframework.stereotype.Service @Service @@ -26,7 +27,7 @@ class TilpassArbeidsfordelingService( arbeidsfordelingsenhet: Arbeidsfordelingsenhet, navIdent: NavIdent?, ): NavIdent? = - if (harSaksbehandlerTilgangTilEnhet(arbeidsfordelingsenhet = arbeidsfordelingsenhet, navIdent = navIdent) + if (harSaksbehandlerTilgangTilEnhet(enhetId = arbeidsfordelingsenhet.enhetId, navIdent = navIdent) ) { navIdent } else { @@ -34,21 +35,27 @@ class TilpassArbeidsfordelingService( } private fun harSaksbehandlerTilgangTilEnhet( - arbeidsfordelingsenhet: Arbeidsfordelingsenhet, + enhetId: String, navIdent: NavIdent?, ): Boolean = - navIdent?.let { integrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent).any { it.enhetsnummer == arbeidsfordelingsenhet.enhetId } } ?: false + navIdent?.let { + hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) + .any { it.enhetsnummer == enhetId } + } ?: false + + private fun hentGyldigeBehandlendeBarnetrygdEnheter(navIdent: NavIdent): List = + integrasjonClient + .hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) + .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } private fun håndterMidlertidigEnhet4863( navIdent: NavIdent?, ): Arbeidsfordelingsenhet { if (navIdent == null) { - throw Feil("Kan ikke sette ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") + throw Feil("Kan ikke håndtere ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") } val enheterNavIdentHarTilgangTil = - integrasjonClient - .hentEnheterSomNavIdentHarTilgangTil(navIdent) - .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } + hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) .filter { it.enhetsnummer != BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } if (enheterNavIdentHarTilgangTil.isEmpty()) { throw Feil("Fant ingen passende enhetsnummer for nav-ident $navIdent") @@ -65,18 +72,7 @@ class TilpassArbeidsfordelingService( navIdent: NavIdent?, ): Arbeidsfordelingsenhet { if (navIdent == null) { - throw Feil("Kan ikke sette ${BarnetrygdEnhet.VIKAFOSSEN} om man mangler NAV-ident") - } - val harTilgangTilVikafossenEnhet2103 = - integrasjonClient - .hentEnheterSomNavIdentHarTilgangTil(navIdent) - .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } - .any { it.enhetsnummer == BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } - if (!harTilgangTilVikafossenEnhet2103) { - return Arbeidsfordelingsenhet( - BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, - BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, - ) + throw Feil("Kan ikke håndtere ${BarnetrygdEnhet.VIKAFOSSEN} om man mangler NAV-ident") } return Arbeidsfordelingsenhet( BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, @@ -96,9 +92,7 @@ class TilpassArbeidsfordelingService( ) } val enheterNavIdentHarTilgangTil = - integrasjonClient - .hentEnheterSomNavIdentHarTilgangTil(navIdent) - .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } + hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) .filter { it.enhetsnummer != BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } if (enheterNavIdentHarTilgangTil.isEmpty()) { throw Feil("Fant ingen passende enhetsnummer for NAV-ident $navIdent") diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt index 039c58057dc..16da400cbe9 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt @@ -38,7 +38,7 @@ class TilpassArbeidsfordelingServiceTest { navIdent = null, ) } - assertThat(exception.message).isEqualTo("Kan ikke sette ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") + assertThat(exception.message).isEqualTo("Kan ikke håndtere ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") } @Test @@ -150,7 +150,7 @@ class TilpassArbeidsfordelingServiceTest { navIdent = null, ) } - assertThat(exception.message).isEqualTo("Kan ikke sette ${BarnetrygdEnhet.VIKAFOSSEN} om man mangler NAV-ident") + assertThat(exception.message).isEqualTo("Kan ikke håndtere ${BarnetrygdEnhet.VIKAFOSSEN} om man mangler NAV-ident") } @Test From 2163588344c807237fdcf7f71f7c768bc57fd58e Mon Sep 17 00:00:00 2001 From: bragejahren Date: Fri, 4 Oct 2024 13:03:03 +0200 Subject: [PATCH 4/7] Flyttet TilpassArbeidsfordelingService til mer fornuftig pakke --- .../familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt | 1 + .../sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt | 7 ------- .../arbeidsfordeling}/TilpassArbeidsfordelingService.kt | 6 ++---- .../ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt | 1 + .../kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt | 1 - .../TilpassArbeidsfordelingServiceTest.kt | 3 +-- 6 files changed, 5 insertions(+), 14 deletions(-) rename src/main/kotlin/no/nav/familie/ba/sak/{integrasjoner/oppgave => kjerne/arbeidsfordeling}/TilpassArbeidsfordelingService.kt (96%) rename src/test/enhetstester/kotlin/no/nav/familie/ba/sak/{integrasjoner/oppgave => kjerne/arbeidsfordeling}/TilpassArbeidsfordelingServiceTest.kt (99%) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt index 82914fc1007..d1a18f6ba8a 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveService.kt @@ -9,6 +9,7 @@ import no.nav.familie.ba.sak.config.FeatureToggleConfig import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.TilpassArbeidsfordelingService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingsenhet diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt index 7eb2714cb8c..36869fdb6bb 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt @@ -7,7 +7,6 @@ import no.nav.familie.ba.sak.config.FeatureToggleConfig import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.integrasjoner.oppgave.OppgaveService -import no.nav.familie.ba.sak.integrasjoner.oppgave.TilpassArbeidsfordelingService import no.nav.familie.ba.sak.integrasjoner.pdl.PersonopplysningerService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository @@ -140,12 +139,6 @@ class ArbeidsfordelingService( ) } - private fun Arbeidsfordelingsenhet.tilpassArbeidsfordelingsenhetTilSaksbehandler(): Arbeidsfordelingsenhet = - tilpassArbeidsfordelingService.tilpassArbeidsfordelingsenhetTilSaksbehandler( - arbeidsfordelingsenhet = this, - navIdent = NavIdent(SikkerhetContext.hentSaksbehandler()), - ) - private fun fastsettArbeidsfordelingsenhetPåSatsendringsbehandling( behandling: Behandling, sisteBehandlingSomErIverksatt: Behandling?, diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt similarity index 96% rename from src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt rename to src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt index 5387adfaf8a..f923a3c9e8e 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt @@ -1,9 +1,8 @@ -package no.nav.familie.ba.sak.integrasjoner.oppgave +package no.nav.familie.ba.sak.kjerne.arbeidsfordeling import no.nav.familie.ba.sak.common.Feil import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet.Companion.erGyldigBehandlendeBarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent import no.nav.familie.kontrakter.felles.enhet.Enhet @@ -27,8 +26,7 @@ class TilpassArbeidsfordelingService( arbeidsfordelingsenhet: Arbeidsfordelingsenhet, navIdent: NavIdent?, ): NavIdent? = - if (harSaksbehandlerTilgangTilEnhet(enhetId = arbeidsfordelingsenhet.enhetId, navIdent = navIdent) - ) { + if (harSaksbehandlerTilgangTilEnhet(enhetId = arbeidsfordelingsenhet.enhetId, navIdent = navIdent)) { navIdent } else { null diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt index 53cb0075259..ba705abc14e 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/OppgaveServiceTest.kt @@ -13,6 +13,7 @@ import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClien import no.nav.familie.ba.sak.integrasjoner.lagTestOppgaveDTO import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.DbOppgave import no.nav.familie.ba.sak.integrasjoner.oppgave.domene.OppgaveRepository +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.TilpassArbeidsfordelingService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingsenhet diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt index 67ae027cc46..3756808abd7 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt @@ -8,7 +8,6 @@ import no.nav.familie.ba.sak.config.FeatureToggleConfig import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet import no.nav.familie.ba.sak.integrasjoner.oppgave.OppgaveService -import no.nav.familie.ba.sak.integrasjoner.oppgave.TilpassArbeidsfordelingService import no.nav.familie.ba.sak.integrasjoner.pdl.PersonopplysningerService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt similarity index 99% rename from src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt rename to src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt index 16da400cbe9..f6b6fc14917 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/oppgave/TilpassArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt @@ -1,4 +1,4 @@ -package no.nav.familie.ba.sak.integrasjoner.oppgave +package no.nav.familie.ba.sak.kjerne.arbeidsfordeling import io.mockk.every import io.mockk.mockk @@ -6,7 +6,6 @@ import no.nav.familie.ba.sak.common.Feil import no.nav.familie.ba.sak.datagenerator.oppgave.lagEnhet import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent import no.nav.familie.kontrakter.felles.enhet.Enhet import org.assertj.core.api.Assertions.assertThat From 6ee946ef63a0f2bdc2904ce342a7e720d62f1ff6 Mon Sep 17 00:00:00 2001 From: bragejahren Date: Sun, 6 Oct 2024 12:56:25 +0200 Subject: [PATCH 5/7] Liten forenkling i ArbeidsfordelingService --- .../arbeidsfordeling/ArbeidsfordelingService.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt index 36869fdb6bb..90a75ba0363 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingService.kt @@ -11,6 +11,7 @@ import no.nav.familie.ba.sak.integrasjoner.pdl.PersonopplysningerService import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandling import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.ArbeidsfordelingPåBehandlingRepository import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.hentArbeidsfordelingPåBehandling +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.domene.tilArbeidsfordelingsenhet import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlagRepository import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.barn @@ -79,15 +80,7 @@ class ArbeidsfordelingService( val aktivArbeidsfordelingPåBehandling = arbeidsfordelingPåBehandlingRepository.finnArbeidsfordelingPåBehandling(behandling.id) - val forrigeArbeidsfordelingsenhet = - if (aktivArbeidsfordelingPåBehandling != null) { - Arbeidsfordelingsenhet( - enhetId = aktivArbeidsfordelingPåBehandling.behandlendeEnhetId, - enhetNavn = aktivArbeidsfordelingPåBehandling.behandlendeEnhetNavn, - ) - } else { - null - } + val forrigeArbeidsfordelingsenhet = aktivArbeidsfordelingPåBehandling?.tilArbeidsfordelingsenhet() val oppdatertArbeidsfordelingPåBehandling = if (behandling.erSatsendring()) { From 1066e7c70afc55cd57b711de98ec751e973879d7 Mon Sep 17 00:00:00 2001 From: bragejahren Date: Tue, 8 Oct 2024 09:02:08 +0200 Subject: [PATCH 6/7] =?UTF-8?q?Sm=C3=A5=20justeringer=20etter=20tilbakemel?= =?UTF-8?q?ding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../familieintegrasjoner/IntegrasjonClient.kt | 7 ++++--- .../TilpassArbeidsfordelingService.kt | 16 ++++++---------- .../ba/sak/config/IntegrasjonClientMock.kt | 2 +- .../IntegrasjonClientTest.kt | 2 +- .../ArbeidsfordelingServiceTest.kt | 6 +----- .../TilpassArbeidsfordelingServiceTest.kt | 18 +++++++++--------- 6 files changed, 22 insertions(+), 29 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClient.kt b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClient.kt index 5ddbf85be7a..76e02efc009 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClient.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClient.kt @@ -11,6 +11,7 @@ import no.nav.familie.ba.sak.integrasjoner.journalføring.domene.LogiskVedleggRe import no.nav.familie.ba.sak.integrasjoner.journalføring.domene.LogiskVedleggResponse import no.nav.familie.ba.sak.integrasjoner.journalføring.domene.OppdaterJournalpostRequest import no.nav.familie.ba.sak.integrasjoner.journalføring.domene.OppdaterJournalpostResponse +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet.Companion.erGyldigBehandlendeBarnetrygdEnhet import no.nav.familie.ba.sak.kjerne.brev.mottaker.ManuellAdresseInfo import no.nav.familie.ba.sak.kjerne.personident.Aktør import no.nav.familie.ba.sak.task.DistribuerDokumentDTO @@ -235,15 +236,15 @@ class IntegrasjonClient( } } - fun hentEnheterSomNavIdentHarTilgangTil(navIdent: NavIdent): List { + fun hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent: NavIdent): List { val uri = URI.create("$integrasjonUri/enhetstilganger") - return kallEksternTjenesteRessurs( + return kallEksternTjenesteRessurs>( tjeneste = "enhetstilganger", uri = uri, formål = "Hent enheter en NAV-ident har tilgang til", ) { postForEntity(uri, HentEnheterNavIdentHarTilgangTilRequest(navIdent, Tema.BAR)) - } + }.filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } } fun opprettOppgave(opprettOppgave: OpprettOppgaveRequest): OppgaveResponse { diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt index f923a3c9e8e..7730886410e 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingService.kt @@ -3,9 +3,7 @@ package no.nav.familie.ba.sak.kjerne.arbeidsfordeling import no.nav.familie.ba.sak.common.Feil import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.domene.Arbeidsfordelingsenhet -import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet.Companion.erGyldigBehandlendeBarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent -import no.nav.familie.kontrakter.felles.enhet.Enhet import org.springframework.stereotype.Service @Service @@ -37,15 +35,11 @@ class TilpassArbeidsfordelingService( navIdent: NavIdent?, ): Boolean = navIdent?.let { - hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) + integrasjonClient + .hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) .any { it.enhetsnummer == enhetId } } ?: false - private fun hentGyldigeBehandlendeBarnetrygdEnheter(navIdent: NavIdent): List = - integrasjonClient - .hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) - .filter { erGyldigBehandlendeBarnetrygdEnhet(it.enhetsnummer) } - private fun håndterMidlertidigEnhet4863( navIdent: NavIdent?, ): Arbeidsfordelingsenhet { @@ -53,7 +47,8 @@ class TilpassArbeidsfordelingService( throw Feil("Kan ikke håndtere ${BarnetrygdEnhet.MIDLERTIDIG_ENHET} om man mangler NAV-ident") } val enheterNavIdentHarTilgangTil = - hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) + integrasjonClient + .hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) .filter { it.enhetsnummer != BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } if (enheterNavIdentHarTilgangTil.isEmpty()) { throw Feil("Fant ingen passende enhetsnummer for nav-ident $navIdent") @@ -90,7 +85,8 @@ class TilpassArbeidsfordelingService( ) } val enheterNavIdentHarTilgangTil = - hentGyldigeBehandlendeBarnetrygdEnheter(navIdent = navIdent) + integrasjonClient + .hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) .filter { it.enhetsnummer != BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer } if (enheterNavIdentHarTilgangTil.isEmpty()) { throw Feil("Fant ingen passende enhetsnummer for NAV-ident $navIdent") diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt index 8268e863fe6..08db7acdd93 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/config/IntegrasjonClientMock.kt @@ -182,7 +182,7 @@ class IntegrasjonClientMock { ) } - every { mockIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(any()) } returns BarnetrygdEnhet.entries.map { Enhet(it.enhetsnummer, it.enhetsnavn) } + every { mockIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(any()) } returns BarnetrygdEnhet.entries.map { Enhet(it.enhetsnummer, it.enhetsnavn) } } fun clearMockFamilieIntegrasjonerTilgangskontrollClient(mockFamilieIntegrasjonerTilgangskontrollClient: FamilieIntegrasjonerTilgangskontrollClient) { diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt index 28c53eea6ea..42666f5d4fa 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt @@ -50,7 +50,7 @@ class IntegrasjonClientTest { ) // Act - val enheter = integrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent) + val enheter = integrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent) // Assert assertThat(enheter).hasSize(2) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt index 3756808abd7..a6f5691c048 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/ArbeidsfordelingServiceTest.kt @@ -64,8 +64,6 @@ class ArbeidsfordelingServiceTest { enhetNavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, ) - val oppdatertArbeidsfordelingPåBehandling = mockk() - every { arbeidsfordelingPåBehandlingRepository.finnArbeidsfordelingPåBehandling(behandling.id) } returns null @@ -97,9 +95,7 @@ class ArbeidsfordelingServiceTest { every { arbeidsfordelingPåBehandlingRepository.save(capture(arbeidsfordelingPåBehandlingSlot)) - } returns oppdatertArbeidsfordelingPåBehandling - - every { oppdatertArbeidsfordelingPåBehandling.toSecureString() } returns "" + } returnsArgument 0 // Act arbeidsfordelingService.fastsettBehandlendeEnhet(behandling, null) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt index f6b6fc14917..d9284ba9e22 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt @@ -55,7 +55,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -96,7 +96,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -167,7 +167,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -206,7 +206,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -266,7 +266,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -307,7 +307,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -356,7 +356,7 @@ class TilpassArbeidsfordelingServiceTest { ) every { - mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil( + mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil( navIdent = navIdent, ) } returns @@ -396,7 +396,7 @@ class TilpassArbeidsfordelingServiceTest { val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) val navIdent = NavIdent("1") - every { mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns + every { mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns listOf( Enhet( enhetsnummer = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, @@ -417,7 +417,7 @@ class TilpassArbeidsfordelingServiceTest { val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) val navIdent = NavIdent("1") - every { mockedIntegrasjonClient.hentEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns + every { mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns listOf( Enhet( enhetsnummer = BarnetrygdEnhet.OSLO.enhetsnummer, From 3c34cf0b3221dca28dbe0be044257e76fa9e4d01 Mon Sep 17 00:00:00 2001 From: bragejahren Date: Tue, 8 Oct 2024 09:30:34 +0200 Subject: [PATCH 7/7] Fikset feilende tester etter endringer i IntegrasjonClient --- .../IntegrasjonClientTest.kt | 5 +- .../TilpassArbeidsfordelingServiceTest.kt | 49 +++++++++---------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt index 42666f5d4fa..e0c27a482a2 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt @@ -3,6 +3,7 @@ package no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner import io.mockk.every import io.mockk.mockk import no.nav.familie.ba.sak.datagenerator.oppgave.lagEnhet +import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet import no.nav.familie.kontrakter.felles.NavIdent import no.nav.familie.kontrakter.felles.Ressurs import no.nav.familie.kontrakter.felles.enhet.Enhet @@ -29,8 +30,8 @@ class IntegrasjonClientTest { // Arrange val navIdent = NavIdent("1") - val enhet1 = lagEnhet("1234") - val enhet2 = lagEnhet("4321") + val enhet1 = lagEnhet(BarnetrygdEnhet.VADSØ.enhetsnummer) + val enhet2 = lagEnhet(BarnetrygdEnhet.OSLO.enhetsnummer) every { mockedRestOperations.exchange>>( diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt index d9284ba9e22..769d8100e7e 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/arbeidsfordeling/TilpassArbeidsfordelingServiceTest.kt @@ -15,7 +15,8 @@ import org.junit.jupiter.api.assertThrows class TilpassArbeidsfordelingServiceTest { private val mockedIntegrasjonClient: IntegrasjonClient = mockk() - private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService = TilpassArbeidsfordelingService(integrasjonClient = mockedIntegrasjonClient) + private val tilpassArbeidsfordelingService: TilpassArbeidsfordelingService = + TilpassArbeidsfordelingService(integrasjonClient = mockedIntegrasjonClient) @Nested inner class TilpassArbeidsfordelingTilSaksbehandler { @@ -45,7 +46,6 @@ class TilpassArbeidsfordelingServiceTest { // Arrange val navIdent = NavIdent("1") - val enhetNavIdentHarTilgangTil1 = BarnetrygdEnhet.MIDLERTIDIG_ENHET val enhetNavIdentHarTilgangTil2 = BarnetrygdEnhet.VIKAFOSSEN val arbeidsfordelingsenhet = @@ -60,13 +60,9 @@ class TilpassArbeidsfordelingServiceTest { ) } returns listOf( - lagEnhet( - enhetsnummer = enhetNavIdentHarTilgangTil1.enhetsnummer, - enhetsnavn = enhetNavIdentHarTilgangTil1.enhetsnavn, - ), lagEnhet( enhetsnummer = enhetNavIdentHarTilgangTil2.enhetsnummer, - enhetsnavn = enhetNavIdentHarTilgangTil1.enhetsnavn, + enhetsnavn = enhetNavIdentHarTilgangTil2.enhetsnavn, ), ) @@ -101,10 +97,6 @@ class TilpassArbeidsfordelingServiceTest { ) } returns listOf( - lagEnhet( - enhetsnummer = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - enhetsnavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, - ), lagEnhet( enhetsnummer = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetsnavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, @@ -271,10 +263,6 @@ class TilpassArbeidsfordelingServiceTest { ) } returns listOf( - lagEnhet( - enhetsnummer = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - enhetsnavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, - ), lagEnhet( enhetsnummer = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetsnavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, @@ -312,10 +300,6 @@ class TilpassArbeidsfordelingServiceTest { ) } returns listOf( - lagEnhet( - enhetsnummer = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnummer, - enhetsnavn = BarnetrygdEnhet.MIDLERTIDIG_ENHET.enhetsnavn, - ), lagEnhet( enhetsnummer = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetsnavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, @@ -393,7 +377,11 @@ class TilpassArbeidsfordelingServiceTest { @Test fun `skal returnere navIdent dersom navIdent har tilgang til arbeidsfordelingsenhet`() { // Arrange - val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + ) val navIdent = NavIdent("1") every { mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns @@ -405,7 +393,8 @@ class TilpassArbeidsfordelingServiceTest { ) // Act - val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + val tilordnetRessurs = + tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) // Assert assertThat(tilordnetRessurs).isEqualTo(navIdent) @@ -414,7 +403,11 @@ class TilpassArbeidsfordelingServiceTest { @Test fun `skal returnere null dersom navIdent ikke har tilgang til arbeidsfordelingsenhet`() { // Arrange - val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + ) val navIdent = NavIdent("1") every { mockedIntegrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent = navIdent) } returns @@ -426,7 +419,8 @@ class TilpassArbeidsfordelingServiceTest { ) // Act - val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + val tilordnetRessurs = + tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) // Assert assertThat(tilordnetRessurs).isNull() @@ -435,11 +429,16 @@ class TilpassArbeidsfordelingServiceTest { @Test fun `skal returnere null dersom navIdent er null`() { // Arrange - val arbeidsfordelingsenhet = Arbeidsfordelingsenhet(enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn) + val arbeidsfordelingsenhet = + Arbeidsfordelingsenhet( + enhetId = BarnetrygdEnhet.VIKAFOSSEN.enhetsnummer, + enhetNavn = BarnetrygdEnhet.VIKAFOSSEN.enhetsnavn, + ) val navIdent = null // Act - val tilordnetRessurs = tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) + val tilordnetRessurs = + tilpassArbeidsfordelingService.bestemTilordnetRessursPåOppgave(arbeidsfordelingsenhet, navIdent) // Assert assertThat(tilordnetRessurs).isNull()