Skip to content

Commit

Permalink
Fjerne dobbelt hentSak-kall
Browse files Browse the repository at this point in the history
  • Loading branch information
simejo committed Jan 27, 2022
1 parent 5e3db30 commit d748a8d
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,6 @@ open class AccessCheckProxy(
utbetaling = object : UtbetalingService {
override fun hentUtbetaling(utbetalingId: UUID30): Either<FantIkkeUtbetaling, Utbetaling> {
assertHarTilgangTilUtbetaling(utbetalingId)

return services.utbetaling.hentUtbetaling(utbetalingId)
}

Expand Down Expand Up @@ -279,7 +278,7 @@ open class AccessCheckProxy(
}

override fun simulerGjenopptak(
sakId: UUID,
sak: Sak,
saksbehandler: NavIdentBruker,
): Either<SimulerGjenopptakFeil, Utbetaling.SimulertUtbetaling> {
kastKanKunKallesFraAnnenService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.su.se.bakover.common.Tidspunkt
import no.nav.su.se.bakover.common.log
import no.nav.su.se.bakover.common.periode.Periode
import no.nav.su.se.bakover.domain.NavIdentBruker
import no.nav.su.se.bakover.domain.Sak
import no.nav.su.se.bakover.domain.behandling.Attestering
import no.nav.su.se.bakover.domain.oppdrag.Utbetaling
import no.nav.su.se.bakover.domain.revurdering.GjenopptaYtelseRevurdering
Expand Down Expand Up @@ -52,6 +53,7 @@ class GjenopptakAvYtelseService(
if (sisteVedtak !is VedtakSomKanRevurderes.EndringIYtelse.StansAvYtelse) {
return KunneIkkeGjenopptaYtelse.SisteVedtakErIkkeStans.left()
} else {
val sak = sakService.hentSak(request.sakId).getOrHandle { return KunneIkkeGjenopptaYtelse.FantIkkeSak.left() }

This comment has been minimized.

Copy link
@hestad

hestad Jan 27, 2022

Contributor

Siden vi nå henter saken, trenger vi ikke hente vedtaket (vedtakRepo.hentForSakId(request.sakId))

val simulertRevurdering = when (request) {
is GjenopptaYtelseRequest.Oppdater -> {
val update = revurderingRepo.hent(request.revurderingId)
Expand All @@ -62,7 +64,7 @@ class GjenopptakAvYtelseService(
fraOgMed = sisteVedtak.periode.fraOgMed,
).getOrHandle { return it.left() }

val simulering = simuler(request).getOrHandle { return it.left() }
val simulering = simuler(sak, request).getOrHandle { return it.left() }

when (update) {
is GjenopptaYtelseRevurdering.SimulertGjenopptakAvYtelse -> {
Expand All @@ -82,17 +84,14 @@ class GjenopptakAvYtelseService(
}
}
is GjenopptaYtelseRequest.Opprett -> {
if (sakService.hentSak(request.sakId)
.getOrHandle { return KunneIkkeGjenopptaYtelse.FantIkkeSak.left() }
.harÅpenRevurderingForGjenopptakAvYtelse()
) return KunneIkkeGjenopptaYtelse.SakHarÅpenRevurderingForGjenopptakAvYtelse.left()
if (sak.harÅpenRevurderingForGjenopptakAvYtelse()) return KunneIkkeGjenopptaYtelse.SakHarÅpenRevurderingForGjenopptakAvYtelse.left()

val gjeldendeVedtaksdata: GjeldendeVedtaksdata = kopierGjeldendeVedtaksdata(
sakId = request.sakId,
fraOgMed = sisteVedtak.periode.fraOgMed,
).getOrHandle { return it.left() }

val simulering = simuler(request).getOrHandle { return it.left() }
val simulering = simuler(sak, request).getOrHandle { return it.left() }

GjenopptaYtelseRevurdering.SimulertGjenopptakAvYtelse(
id = UUID.randomUUID(),
Expand Down Expand Up @@ -172,13 +171,12 @@ class GjenopptakAvYtelseService(
}.right()
}

private fun simuler(request: GjenopptaYtelseRequest): Either<KunneIkkeGjenopptaYtelse, Utbetaling.SimulertUtbetaling> {
return utbetalingService.simulerGjenopptak(
sakId = request.sakId,
private fun simuler(sak: Sak, request: GjenopptaYtelseRequest): Either<KunneIkkeGjenopptaYtelse, Utbetaling.SimulertUtbetaling> =
utbetalingService.simulerGjenopptak(
sak = sak,
saksbehandler = request.saksbehandler,
).getOrHandle {
log.warn("Kunne ikke opprette revurdering for gjenopptak av ytelse, årsak: $it")
return KunneIkkeGjenopptaYtelse.KunneIkkeSimulere(it).left()
}.right()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,7 @@ internal class SøknadsbehandlingServiceImpl(

return forsøkStatusovergang(
søknadsbehandling = søknadsbehandling,
statusovergang = Statusovergang.TilIverksatt(
attestering = request.attestering,
),
statusovergang = Statusovergang.TilIverksatt(request.attestering),
).map { iverksattBehandling ->
when (iverksattBehandling) {
is Søknadsbehandling.Iverksatt.Innvilget -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import arrow.core.Either
import no.nav.su.se.bakover.common.UUID30
import no.nav.su.se.bakover.common.persistence.TransactionContext
import no.nav.su.se.bakover.domain.NavIdentBruker
import no.nav.su.se.bakover.domain.Sak
import no.nav.su.se.bakover.domain.beregning.Beregning
import no.nav.su.se.bakover.domain.grunnlag.Grunnlag
import no.nav.su.se.bakover.domain.oppdrag.Kvittering
Expand Down Expand Up @@ -78,7 +79,7 @@ interface UtbetalingService {
): Either<UtbetalStansFeil, Utbetaling.OversendtUtbetaling.UtenKvittering>

fun simulerGjenopptak(
sakId: UUID,
sak: Sak,
saksbehandler: NavIdentBruker,
): Either<SimulerGjenopptakFeil, Utbetaling.SimulertUtbetaling>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,12 +316,10 @@ internal class UtbetalingServiceImpl(
}

override fun simulerGjenopptak(
sakId: UUID,
sak: Sak,
saksbehandler: NavIdentBruker,
): Either<SimulerGjenopptakFeil, Utbetaling.SimulertUtbetaling> {
val sak: Sak = sakService.hentSak(sakId).orNull()!!

return Utbetalingsstrategi.Gjenoppta(
): Either<SimulerGjenopptakFeil, Utbetaling.SimulertUtbetaling> =
Utbetalingsstrategi.Gjenoppta(
sakId = sak.id,
saksnummer = sak.saksnummer,
fnr = sak.fnr,
Expand All @@ -337,7 +335,6 @@ internal class UtbetalingServiceImpl(
SimulerGjenopptakFeil.KunneIkkeSimulere(it)
}
}
}

override fun gjenopptaUtbetalinger(
sakId: UUID,
Expand All @@ -348,7 +345,7 @@ internal class UtbetalingServiceImpl(
return UtbetalGjenopptakFeil.KunneIkkeUtbetale(UtbetalingFeilet.FantIkkeSak).left()
}
return simulerGjenopptak(
sakId = sakId,
sak = sak,
saksbehandler = attestant,
).mapLeft {
UtbetalGjenopptakFeil.KunneIkkeSimulere(it)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ internal class GjenopptakAvYtelseServiceTest {
).let {
it.revurderingService.gjenopptaYtelse(
GjenopptaYtelseRequest.Opprett(
sakId = sakId,
sakId = sak.id,
saksbehandler = saksbehandler,
revurderingsårsak = Revurderingsårsak.create(
årsak = Revurderingsårsak.Årsak.MOTTATT_KONTROLLERKLÆRING.toString(),
Expand All @@ -220,14 +220,14 @@ internal class GjenopptakAvYtelseServiceTest {
),
).left()

verify(it.vedtakRepo).hentForSakId(sakId)
verify(it.sakService).hentSak(sakId)
verify(it.vedtakRepo).hentForSakId(sak.id)
verify(it.sakService).hentSak(sak.id)
verify(it.vedtakService).kopierGjeldendeVedtaksdata(
sakId = sakId,
sakId = sak.id,
fraOgMed = periode.fraOgMed,
)
verify(it.utbetalingService).simulerGjenopptak(
sakId = sakId,
sak = sak,
saksbehandler = saksbehandler,
)
it.verifyNoMoreInteractions()
Expand Down Expand Up @@ -278,7 +278,7 @@ internal class GjenopptakAvYtelseServiceTest {
it.revurderingService.addObserver(observerMock)
val response = it.revurderingService.gjenopptaYtelse(
GjenopptaYtelseRequest.Opprett(
sakId = sakId,
sakId = sak.id,
saksbehandler = saksbehandler,
revurderingsårsak = Revurderingsårsak.create(
årsak = Revurderingsårsak.Årsak.MOTTATT_KONTROLLERKLÆRING.toString(),
Expand All @@ -295,14 +295,14 @@ internal class GjenopptakAvYtelseServiceTest {
begrunnelse = "begrunnelse",
)

verify(it.vedtakRepo).hentForSakId(sakId)
verify(it.sakService).hentSak(sakId)
verify(it.vedtakRepo).hentForSakId(sak.id)
verify(it.sakService).hentSak(sak.id)
verify(it.vedtakService).kopierGjeldendeVedtaksdata(
sakId = sakId,
sakId = sak.id,
fraOgMed = periode.fraOgMed,
)
verify(it.utbetalingService).simulerGjenopptak(
sakId = sakId,
sak = sak,
saksbehandler = saksbehandler,
)
verify(it.revurderingRepo).defaultTransactionContext()
Expand Down Expand Up @@ -391,13 +391,13 @@ internal class GjenopptakAvYtelseServiceTest {
fraOgMed = LocalDate.now(fixedClock).plusMonths(1).startOfMonth(),
tilOgMed = LocalDate.now(fixedClock).plusMonths(2).endOfMonth(),
)
val eksisterende = simulertGjenopptakelseAvytelseFraVedtakStansAvYtelse(
val (sak, revurdering) = simulertGjenopptakelseAvytelseFraVedtakStansAvYtelse(
periodeForStans = periode,
clock = fixedClock
)

val vedtakRepoMock = mock<VedtakRepo> {
on { hentForSakId(any()) } doReturn eksisterende.first.vedtakListe
on { hentForSakId(any()) } doReturn sak.vedtakListe
}

val vedtakServiceMock = mock<VedtakService> {
Expand All @@ -408,29 +408,34 @@ internal class GjenopptakAvYtelseServiceTest {
)
} doReturn GjeldendeVedtaksdata(
periode = periode,
vedtakListe = nonEmptyListOf(eksisterende.second.tilRevurdering),
vedtakListe = nonEmptyListOf(revurdering.tilRevurdering),
clock = fixedClock,
).right()
}

val sakService = mock<SakService> {
on { hentSak(any<UUID>()) } doReturn sak.right()
}

val utbetalingServiceMock = mock<UtbetalingService> {
on { simulerGjenopptak(any(), any()) } doReturn simulertGjenopptakUtbetaling().right()
}

val revurderingRepoMock = mock<RevurderingRepo> {
on { hent(any()) } doReturn eksisterende.second
on { hent(any()) } doReturn revurdering
}

RevurderingServiceMocks(
revurderingRepo = revurderingRepoMock,
vedtakRepo = vedtakRepoMock,
vedtakService = vedtakServiceMock,
utbetalingService = utbetalingServiceMock,
sakService = sakService
).let {
val response = it.revurderingService.gjenopptaYtelse(
GjenopptaYtelseRequest.Oppdater(
sakId = sakId,
revurderingId = eksisterende.second.id,
sakId = sak.id,
revurderingId = revurdering.id,
saksbehandler = NavIdentBruker.Saksbehandler("jossi"),
revurderingsårsak = Revurderingsårsak.create(
årsak = Revurderingsårsak.Årsak.MOTTATT_KONTROLLERKLÆRING.toString(),
Expand All @@ -441,22 +446,23 @@ internal class GjenopptakAvYtelseServiceTest {

response.saksbehandler shouldBe NavIdentBruker.Saksbehandler("jossi")
response.periode shouldBe periode
response.tilRevurdering shouldBe eksisterende.second.tilRevurdering
response.tilRevurdering shouldBe revurdering.tilRevurdering
response.revurderingsårsak shouldBe Revurderingsårsak.create(
årsak = Revurderingsårsak.Årsak.MOTTATT_KONTROLLERKLÆRING.toString(),
begrunnelse = "ny begrunnelse",
)

verify(vedtakRepoMock).hentForSakId(sakId)
verify(sakService).hentSak(sak.id)
verify(vedtakRepoMock).hentForSakId(sak.id)
verify(it.vedtakService).kopierGjeldendeVedtaksdata(
sakId = sakId,
sakId = sak.id,
fraOgMed = periode.fraOgMed,
)
verify(it.utbetalingService).simulerGjenopptak(
sakId = sakId,
sak = sak,
saksbehandler = NavIdentBruker.Saksbehandler("jossi"),
)
verify(it.revurderingRepo).hent(eksisterende.second.id)
verify(it.revurderingRepo).hent(revurdering.id)
verify(it.revurderingRepo).defaultTransactionContext()
verify(it.revurderingRepo).lagre(argThat { it shouldBe response }, anyOrNull())
it.verifyNoMoreInteractions()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ internal class GjenopptaUtbetalingerServiceTest {
attestant = saksbehandler,
simulering = simulering,
).getOrFail("skulle gått bra").let {
verify(sakServiceMock, times(2)).hentSak(
verify(sakServiceMock).hentSak(
sakId = argThat { it shouldBe sak.id },
)
verify(simuleringClientMock).simulerUtbetaling(
Expand Down Expand Up @@ -195,7 +195,7 @@ internal class GjenopptaUtbetalingerServiceTest {
.left()

inOrder(sakServiceMock, simuleringClientMock) {
verify(sakServiceMock, times(2)).hentSak(sak.id)
verify(sakServiceMock).hentSak(sak.id)
verify(simuleringClientMock).simulerUtbetaling(
argThat { it shouldBe beOfType<Utbetaling.UtbetalingForSimulering>() },
)
Expand Down Expand Up @@ -249,7 +249,7 @@ internal class GjenopptaUtbetalingerServiceTest {
it shouldBe UtbetalGjenopptakFeil.KunneIkkeUtbetale(UtbetalingFeilet.Protokollfeil).left()

inOrder(sakServiceMock, simuleringClientMock, utbetalingPublisherMock) {
verify(sakServiceMock, times(2)).hentSak(sakId = argThat { sak.id })
verify(sakServiceMock).hentSak(sakId = argThat { sak.id })
verify(simuleringClientMock).simulerUtbetaling(argThat { gjenopptakUtbetalingForSimulering() })
verify(utbetalingPublisherMock).publish(argThat { simulertGjenopptakUtbetaling() })
}
Expand Down

0 comments on commit d748a8d

Please sign in to comment.