|
| 1 | +package no.nav.su.se.bakover.domain.søknadsbehandling |
| 2 | + |
| 3 | +import arrow.core.nonEmptyListOf |
| 4 | +import behandling.søknadsbehandling.domain.VilkårsvurderingerSøknadsbehandling |
| 5 | +import io.kotest.matchers.shouldBe |
| 6 | +import no.nav.su.se.bakover.common.domain.attestering.Attesteringshistorikk |
| 7 | +import no.nav.su.se.bakover.common.domain.oppgave.OppgaveId |
| 8 | +import no.nav.su.se.bakover.common.ident.NavIdentBruker |
| 9 | +import no.nav.su.se.bakover.common.tid.periode.år |
| 10 | +import no.nav.su.se.bakover.test.fixedClock |
| 11 | +import no.nav.su.se.bakover.test.fixedTidspunkt |
| 12 | +import no.nav.su.se.bakover.test.getOrFail |
| 13 | +import no.nav.su.se.bakover.test.shouldBeEqualToExceptId |
| 14 | +import no.nav.su.se.bakover.test.søknadsbehandlingIverksattAvslagMedBeregning |
| 15 | +import no.nav.su.se.bakover.test.søknadsbehandlingIverksattAvslagUtenBeregning |
| 16 | +import no.nav.su.se.bakover.test.vilkår.institusjonsoppholdvilkårInnvilget |
| 17 | +import no.nav.su.se.bakover.test.vilkår.utilstrekkeligDokumentert |
| 18 | +import org.junit.jupiter.api.Test |
| 19 | +import vilkår.opplysningsplikt.domain.OpplysningspliktBeskrivelse |
| 20 | +import vilkår.opplysningsplikt.domain.OpplysningspliktVilkår |
| 21 | +import vilkår.opplysningsplikt.domain.Opplysningspliktgrunnlag |
| 22 | +import vilkår.opplysningsplikt.domain.VurderingsperiodeOpplysningsplikt |
| 23 | + |
| 24 | +class IverksattSøknadsbehandlingTest { |
| 25 | + |
| 26 | + @Test |
| 27 | + fun `et avslag med beregning kan opprette ny behandling - innholdet i nye blir for det meste en kopi`() { |
| 28 | + val (sak, original) = søknadsbehandlingIverksattAvslagMedBeregning() |
| 29 | + |
| 30 | + original.opprettNySøknadsbehandling( |
| 31 | + kanOppretteNyBehandling = true, |
| 32 | + nyOppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 33 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 34 | + clock = fixedClock, |
| 35 | + ).getOrFail().let { |
| 36 | + it shouldBe BeregnetSøknadsbehandling.Avslag( |
| 37 | + id = it.id, |
| 38 | + opprettet = fixedTidspunkt, |
| 39 | + sakId = sak.id, |
| 40 | + saksnummer = sak.saksnummer, |
| 41 | + søknad = original.søknad, |
| 42 | + oppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 43 | + fnr = sak.fnr, |
| 44 | + beregning = original.beregning, |
| 45 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 46 | + attesteringer = Attesteringshistorikk.empty(), |
| 47 | + søknadsbehandlingsHistorikk = Søknadsbehandlingshistorikk.nyHistorikk( |
| 48 | + Søknadsbehandlingshendelse( |
| 49 | + handling = SøknadsbehandlingsHandling.StartetBehandlingFraEtAvslag(original.id), |
| 50 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 51 | + tidspunkt = fixedTidspunkt, |
| 52 | + ), |
| 53 | + ), |
| 54 | + fritekstTilBrev = original.fritekstTilBrev, |
| 55 | + aldersvurdering = original.aldersvurdering, |
| 56 | + grunnlagsdataOgVilkårsvurderinger = original.grunnlagsdataOgVilkårsvurderinger, |
| 57 | + sakstype = sak.type, |
| 58 | + ) |
| 59 | + } |
| 60 | + } |
| 61 | + |
| 62 | + @Test |
| 63 | + fun `et avslag uten beregning (pga opplysningsplikt) kan opprette ny behandling - vi innvilger opplysningsplikt, resten er for det meste kopi`() { |
| 64 | + val (sak, original) = søknadsbehandlingIverksattAvslagUtenBeregning( |
| 65 | + customVilkår = listOf( |
| 66 | + institusjonsoppholdvilkårInnvilget(), |
| 67 | + utilstrekkeligDokumentert(), |
| 68 | + ), |
| 69 | + ) |
| 70 | + |
| 71 | + original.opprettNySøknadsbehandling( |
| 72 | + kanOppretteNyBehandling = true, |
| 73 | + nyOppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 74 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 75 | + clock = fixedClock, |
| 76 | + ).getOrFail().let { |
| 77 | + it.shouldBeEqualToExceptId( |
| 78 | + VilkårsvurdertSøknadsbehandling.Avslag( |
| 79 | + id = it.id, |
| 80 | + opprettet = fixedTidspunkt, |
| 81 | + sakId = sak.id, |
| 82 | + saksnummer = sak.saksnummer, |
| 83 | + søknad = original.søknad, |
| 84 | + oppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 85 | + fnr = sak.fnr, |
| 86 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 87 | + attesteringer = Attesteringshistorikk.empty(), |
| 88 | + søknadsbehandlingsHistorikk = Søknadsbehandlingshistorikk.nyHistorikk( |
| 89 | + Søknadsbehandlingshendelse( |
| 90 | + handling = SøknadsbehandlingsHandling.StartetBehandlingFraEtAvslag(original.id), |
| 91 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 92 | + tidspunkt = fixedTidspunkt, |
| 93 | + ), |
| 94 | + ), |
| 95 | + fritekstTilBrev = original.fritekstTilBrev, |
| 96 | + aldersvurdering = original.aldersvurdering, |
| 97 | + grunnlagsdataOgVilkårsvurderinger = original.grunnlagsdataOgVilkårsvurderinger.copy( |
| 98 | + vilkårsvurderinger = (original.vilkårsvurderinger as VilkårsvurderingerSøknadsbehandling.Uføre).copy( |
| 99 | + opplysningsplikt = OpplysningspliktVilkår.Vurdert.tryCreate( |
| 100 | + vurderingsperioder = nonEmptyListOf( |
| 101 | + VurderingsperiodeOpplysningsplikt.create( |
| 102 | + id = (it.grunnlagsdataOgVilkårsvurderinger.vilkårsvurderinger.opplysningsplikt as OpplysningspliktVilkår.Vurdert).vurderingsperioder.single().id, |
| 103 | + opprettet = fixedTidspunkt, |
| 104 | + periode = år(2021), |
| 105 | + grunnlag = Opplysningspliktgrunnlag( |
| 106 | + id = (it.grunnlagsdataOgVilkårsvurderinger.vilkårsvurderinger.opplysningsplikt as OpplysningspliktVilkår.Vurdert).vurderingsperioder.single().grunnlag.id, |
| 107 | + opprettet = fixedTidspunkt, |
| 108 | + periode = år(2021), |
| 109 | + beskrivelse = OpplysningspliktBeskrivelse.TilstrekkeligDokumentasjon, |
| 110 | + ), |
| 111 | + ), |
| 112 | + ), |
| 113 | + ).getOrFail(), |
| 114 | + ), |
| 115 | + ), |
| 116 | + sakstype = sak.type, |
| 117 | + ), |
| 118 | + ) |
| 119 | + } |
| 120 | + } |
| 121 | + |
| 122 | + @Test |
| 123 | + fun `et avslag uten beregning (pga vilkår annet en opplysningsplikt) kan opprette ny behandling`() { |
| 124 | + val (sak, original) = søknadsbehandlingIverksattAvslagUtenBeregning() |
| 125 | + |
| 126 | + original.opprettNySøknadsbehandling( |
| 127 | + kanOppretteNyBehandling = true, |
| 128 | + nyOppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 129 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 130 | + clock = fixedClock, |
| 131 | + ).getOrFail().let { |
| 132 | + it.shouldBeEqualToExceptId( |
| 133 | + VilkårsvurdertSøknadsbehandling.Avslag( |
| 134 | + id = it.id, |
| 135 | + opprettet = fixedTidspunkt, |
| 136 | + sakId = sak.id, |
| 137 | + saksnummer = sak.saksnummer, |
| 138 | + søknad = original.søknad, |
| 139 | + oppgaveId = OppgaveId(value = "ny oppgaveId"), |
| 140 | + fnr = sak.fnr, |
| 141 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 142 | + attesteringer = Attesteringshistorikk.empty(), |
| 143 | + søknadsbehandlingsHistorikk = Søknadsbehandlingshistorikk.nyHistorikk( |
| 144 | + Søknadsbehandlingshendelse( |
| 145 | + handling = SøknadsbehandlingsHandling.StartetBehandlingFraEtAvslag(original.id), |
| 146 | + saksbehandler = NavIdentBruker.Saksbehandler(navIdent = "ny saksbehandler"), |
| 147 | + tidspunkt = fixedTidspunkt, |
| 148 | + ), |
| 149 | + ), |
| 150 | + fritekstTilBrev = original.fritekstTilBrev, |
| 151 | + aldersvurdering = original.aldersvurdering, |
| 152 | + grunnlagsdataOgVilkårsvurderinger = original.grunnlagsdataOgVilkårsvurderinger, |
| 153 | + sakstype = sak.type, |
| 154 | + ), |
| 155 | + |
| 156 | + ) |
| 157 | + } |
| 158 | + } |
| 159 | +} |
0 commit comments