diff --git a/src/main/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTask.kt b/src/main/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTask.kt index 6f1ab6359..f87cfb15d 100644 --- a/src/main/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTask.kt +++ b/src/main/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTask.kt @@ -5,6 +5,7 @@ import no.nav.familie.prosessering.TaskStepBeskrivelse import no.nav.familie.prosessering.domene.Task import no.nav.familie.tilbake.behandling.BehandlingRepository import no.nav.familie.tilbake.common.repository.findByIdOrThrow +import no.nav.familie.tilbake.integration.pdl.internal.secureLogger import org.slf4j.LoggerFactory import org.springframework.stereotype.Service import java.util.UUID @@ -32,7 +33,12 @@ class OppdaterAnsvarligSaksbehandlerTask( val prioritet = oppgavePrioritetService.utledOppgaveprioritet(behandlingId, oppgave) if (oppgave.tilordnetRessurs != behandling.ansvarligSaksbehandler || oppgave.prioritet != prioritet) { - oppgaveService.patchOppgave(oppgave.copy(tilordnetRessurs = behandling.ansvarligSaksbehandler, prioritet = prioritet)) + try { + oppgaveService.patchOppgave(oppgave.copy(tilordnetRessurs = behandling.ansvarligSaksbehandler, prioritet = prioritet)) + } catch (e: Exception) { + oppgaveService.patchOppgave(oppgave.copy(prioritet = prioritet)) + secureLogger.warn("Kunne ikke oppdatere tilordnetRessurs, ${behandling.ansvarligSaksbehandler}") + } } } diff --git a/src/test/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTaskTest.kt b/src/test/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTaskTest.kt index 3350deb19..cd0f47ca9 100644 --- a/src/test/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTaskTest.kt +++ b/src/test/kotlin/no/nav/familie/tilbake/oppgave/OppdaterAnsvarligSaksbehandlerTaskTest.kt @@ -6,6 +6,7 @@ import io.mockk.mockk import io.mockk.verify import no.nav.familie.kontrakter.felles.oppgave.Oppgave import no.nav.familie.kontrakter.felles.oppgave.OppgavePrioritet +import no.nav.familie.kontrakter.felles.oppgave.OppgaveResponse import no.nav.familie.kontrakter.felles.oppgave.Oppgavetype import no.nav.familie.prosessering.domene.Task import no.nav.familie.tilbake.behandling.BehandlingRepository @@ -56,12 +57,27 @@ internal class OppdaterAnsvarligSaksbehandlerTaskTest { } } + @Test + fun `Skal ikke oppdatere oppgave når ingenting er endret`() { + val oppgave = Oppgave(tilordnetRessurs = behandling.ansvarligSaksbehandler, prioritet = OppgavePrioritet.NORM) + + every { oppgavePrioritetService.utledOppgaveprioritet(any(), any()) } returns OppgavePrioritet.NORM + every { mockOppgaveService.finnOppgaveForBehandlingUtenOppgaveType(behandling.id) } returns oppgave + + oppdaterAnsvarligSaksbehandlerTask.doTask(lagTask()) + + verify(exactly = 0) { mockOppgaveService.patchOppgave(any()) } + } + @Test fun `doTask skal oppdatere oppgave når saksbehandler endret`() { - val oppgave = Oppgave(tilordnetRessurs = "TIDLIGERE saksbehandler", prioritet = OppgavePrioritet.NORM) + val oppgave = Oppgave(tilordnetRessurs = "Saksbehandler", prioritet = OppgavePrioritet.NORM) + every { oppgavePrioritetService.utledOppgaveprioritet(any(), any()) } returns OppgavePrioritet.NORM every { mockOppgaveService.finnOppgaveForBehandlingUtenOppgaveType(behandling.id) } returns oppgave + every { mockOppgaveService.patchOppgave(match { it.tilordnetRessurs == behandling.ansvarligSaksbehandler && it.prioritet == OppgavePrioritet.NORM }) } returns OppgaveResponse(oppgave.id ?: 1) + oppdaterAnsvarligSaksbehandlerTask.doTask(lagTask()) verify(atLeast = 1) { @@ -75,15 +91,26 @@ internal class OppdaterAnsvarligSaksbehandlerTaskTest { } @Test - fun `Skal ikke oppdatere oppgave når ingenting er endret`() { + fun `Skal kalle patchOppgave med oppdatert prioritet når unntak kastes`() { val oppgave = Oppgave(tilordnetRessurs = behandling.ansvarligSaksbehandler, prioritet = OppgavePrioritet.NORM) + val oppgaveSomFeiler = Oppgave(prioritet = OppgavePrioritet.NORM) every { oppgavePrioritetService.utledOppgaveprioritet(any(), any()) } returns OppgavePrioritet.NORM - every { mockOppgaveService.finnOppgaveForBehandlingUtenOppgaveType(behandling.id) } returns oppgave + every { mockOppgaveService.finnOppgaveForBehandlingUtenOppgaveType(behandling.id) } returns oppgaveSomFeiler + + every { mockOppgaveService.patchOppgave(match { it.tilordnetRessurs == behandling.ansvarligSaksbehandler && it.prioritet == OppgavePrioritet.NORM }) } throws RuntimeException("Mock exception") + every { mockOppgaveService.patchOppgave(match { it.prioritet == OppgavePrioritet.NORM && it.tilordnetRessurs == null }) } returns OppgaveResponse(oppgave.id ?: 1) oppdaterAnsvarligSaksbehandlerTask.doTask(lagTask()) - verify(exactly = 0) { mockOppgaveService.patchOppgave(any()) } + verify(exactly = 2) { mockOppgaveService.patchOppgave(any()) } + verify { + mockOppgaveService.patchOppgave( + match { + it.prioritet == OppgavePrioritet.NORM + }, + ) + } } private fun lagTask(opprettetAv: String? = null): Task =