Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nav 23517 validere saksbehandler opp mot enhet #1587

Merged
merged 12 commits into from
Dec 17, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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}")
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand All @@ -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 =
Expand Down
Loading