Skip to content

Commit

Permalink
F - Legger inn preutfylling for 6000 for gjenny, uten vedtak
Browse files Browse the repository at this point in the history
  • Loading branch information
dskarpas committed Nov 23, 2023
1 parent 375580b commit ffe2d9d
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 6 deletions.
12 changes: 10 additions & 2 deletions src/main/kotlin/no/nav/eessi/pensjon/prefill/PrefillService.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package no.nav.eessi.pensjon.prefill

import io.micrometer.core.instrument.Metrics
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.eux.model.sed.SED
import no.nav.eessi.pensjon.metrics.MetricsHelper
import no.nav.eessi.pensjon.prefill.models.PensjonCollection
import no.nav.eessi.pensjon.prefill.sed.PrefillSEDService
import no.nav.eessi.pensjon.shared.api.ApiRequest
import no.nav.eessi.pensjon.statistikk.AutomatiseringStatistikkService
Expand Down Expand Up @@ -45,9 +47,15 @@ class PrefillService(
eessiRequire(prefillData.sedType.kanPrefilles() ) {"SedType ${prefillData.sedType} kan ikke prefilles!"}

val personcollection = innhentingService.hentPersonData(prefillData)
val pensjonCollection = innhentingService.hentPensjoninformasjonCollection(prefillData)

val sed = prefillSedService.prefill(prefillData, personcollection, pensjonCollection)
//TODO: midlertidig løsning
val sed = if(request.gjenny && request.sed == SedType.P6000){
prefillSedService.prefill(prefillData, personcollection)
}
else {
val pensjonCollection = innhentingService.hentPensjoninformasjonCollection(prefillData)
prefillSedService.prefill(prefillData, personcollection, pensjonCollection)
}

logger.debug("Sed ferdig utfylt: $sed")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ class PrefillSEDService(private val eessiInformasjon: EessiInformasjon, private

private val logger: Logger by lazy { LoggerFactory.getLogger(PrefillSEDService::class.java) }

fun prefill(prefillData: PrefillDataModel, personDataCollection: PersonDataCollection): SED {
return PrefillP6000(
prefillPDLnav,
eessiInformasjon,
null
).prefill(
prefillData,
personDataCollection
)
}
fun prefill(prefillData: PrefillDataModel, personDataCollection: PersonDataCollection, pensjonCollection: PensjonCollection): SED {

logger.debug("mapping prefillClass to SED: ${prefillData.sedType}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import org.slf4j.LoggerFactory

class PrefillP6000(private val prefillNav: PrefillPDLNav,
private val eessiInfo: EessiInformasjon,
private val pensjoninformasjon: Pensjonsinformasjon) {
private val pensjoninformasjon: Pensjonsinformasjon?) {

private val logger: Logger by lazy { LoggerFactory.getLogger(PrefillP6000::class.java) }

Expand All @@ -35,7 +35,7 @@ class PrefillP6000(private val prefillNav: PrefillPDLNav,
val gjenlevende = prefillData.avdod?.let { prefillNav.createGjenlevende(personData.forsikretPerson) }

logger.debug("Henter opp Pensjonsdata fra PESYS")
val p6000Pensjon = prefillP6000Pensjon(pensjoninformasjon, gjenlevende, andreInstitusjondetaljer)
val p6000Pensjon = if(pensjoninformasjon != null) prefillP6000Pensjon(pensjoninformasjon, gjenlevende, andreInstitusjondetaljer) else null

logger.debug("Henter opp Persondata fra TPS")
val nav = prefillNav.prefill(
Expand All @@ -44,7 +44,7 @@ class PrefillP6000(private val prefillNav: PrefillPDLNav,
avdod = prefillData.avdod,
personData = personData,
bankOgArbeid = prefillData.getBankOgArbeidFromRequest(),
krav = p6000Pensjon.kravDato,
krav = p6000Pensjon?.kravDato,
annenPerson = null
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,62 @@
package no.nav.eessi.pensjon.prefill
import io.mockk.every
import io.mockk.mockk
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.prefill.models.EessiInformasjon
import no.nav.eessi.pensjon.prefill.models.EessiInformasjonMother
import no.nav.eessi.pensjon.prefill.models.PersonDataCollection
import no.nav.eessi.pensjon.prefill.models.PrefillDataModelMother
import no.nav.eessi.pensjon.prefill.person.PrefillPDLAdresse
import no.nav.eessi.pensjon.prefill.person.PrefillPDLNav
import no.nav.eessi.pensjon.prefill.sed.PrefillSEDService
import no.nav.eessi.pensjon.prefill.sed.PrefillTestHelper
import no.nav.eessi.pensjon.shared.api.PersonId
import no.nav.eessi.pensjon.shared.api.PrefillDataModel
import no.nav.eessi.pensjon.shared.person.FodselsnummerGenerator
import no.nav.eessi.pensjon.statistikk.AutomatiseringStatistikkService
import org.junit.Test
import org.junit.jupiter.api.BeforeEach

class PrefillServiceTest {
private val personFnr = FodselsnummerGenerator.generateFnrForTest(57)
private val avdodPersonFnr = FodselsnummerGenerator.generateFnrForTest(63)

private val mockPrefillSEDService: PrefillSEDService = mockk()
private val innhentingService: InnhentingService = mockk()
private val automatiseringStatistikkService: AutomatiseringStatistikkService = mockk()

private lateinit var prefillData: PrefillDataModel
private lateinit var prefillSEDService: PrefillSEDService
private lateinit var dataFromPEN: PensjonsinformasjonService
private lateinit var prefillService: PrefillService
private lateinit var personcollection: PersonDataCollection
private lateinit var personDataCollection: PersonDataCollection
private lateinit var prefillNav: PrefillPDLNav
private lateinit var eessiInformasjon: EessiInformasjon

@BeforeEach
fun `startup initilize testing`() {
prefillService = PrefillService(mockPrefillSEDService, innhentingService, automatiseringStatistikkService)
personcollection = PersonDataCollection(null, null)
val personDataCollectionFamilie = PersonPDLMock.createEnkelFamilie(personFnr, avdodPersonFnr)
personDataCollection = PersonDataCollection(gjenlevendeEllerAvdod = personDataCollectionFamilie.ektefellePerson, forsikretPerson = personDataCollectionFamilie.forsikretPerson )

prefillNav = PrefillPDLNav(
prefillAdresse = mockk<PrefillPDLAdresse> {
every { hentLandkode(any()) } returns "NO"
every { createPersonAdresse(any()) } returns mockk()
},
institutionid = "NO:noinst002",
institutionnavn = "NOINST002, NO INST002, NO"
)

eessiInformasjon = EessiInformasjonMother.standardEessiInfo()
}

@Test
fun `En p6000 uten vedtak skal gi en delvis utfylt sed`(){
dataFromPEN = PrefillTestHelper.lesPensjonsdataVedtakFraFil("/pensjonsinformasjon/vedtak/P6000-GP-401.xml")
prefillData = PrefillDataModelMother.initialPrefillDataModel(SedType.P6000, personFnr, penSaksnummer = "22580170", vedtakId = "12312312", avdod = PersonId(avdodPersonFnr, "1234567891234"))
prefillSEDService = PrefillSEDService(eessiInformasjon, prefillNav)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.eessi.pensjon.prefill.sed.vedtak
import io.mockk.every
import io.mockk.mockk
import no.nav.eessi.pensjon.eux.model.SedType
import no.nav.eessi.pensjon.eux.model.sed.Nav
import no.nav.eessi.pensjon.eux.model.sed.P6000
import no.nav.eessi.pensjon.prefill.IkkeGyldigKallException
import no.nav.eessi.pensjon.prefill.InnhentingService
Expand All @@ -19,6 +20,9 @@ import no.nav.eessi.pensjon.prefill.sed.PrefillTestHelper
import no.nav.eessi.pensjon.shared.api.PersonId
import no.nav.eessi.pensjon.shared.api.PrefillDataModel
import no.nav.eessi.pensjon.shared.person.FodselsnummerGenerator
import no.nav.eessi.pensjon.utils.mapJsonToAny
import no.nav.eessi.pensjon.utils.toJson
import no.nav.eessi.pensjon.utils.toJsonSkipEmpty
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.BeforeEach
Expand Down Expand Up @@ -110,6 +114,24 @@ class PrefillP6000Pensjon_GJENLEV_Test {
assertEquals("2018-05-26", p6000Pensjon.tilleggsinformasjon?.dato)
}

@Test
fun `forventet en delvis utfylt p6000 selv om det mangler vedtak`() {
prefillData = PrefillDataModelMother.initialPrefillDataModel(
SedType.P6000,
personFnr,
penSaksnummer = "22580170",
vedtakId = "12312312",
avdod = PersonId(avdodPersonFnr, "1234567891234"),
kravDato = "2018-05-01"
)
prefillSEDService = PrefillSEDService(eessiInformasjon, prefillNav)

val p6000 = prefillSEDService.prefill(prefillData, personDataCollection) as P6000
assertEquals(avdodPersonFnr, p6000.nav?.bruker?.person?.pin?.firstOrNull()?.identifikator)
assertEquals("RAGNAROK", p6000.nav?.bruker?.person?.etternavn)
assertEquals("THOR-DOPAPIR", p6000.nav?.bruker?.person?.fornavn)
}

@Test
fun `forventet korrekt utfylt P6000 gjenlevende ikke bosat utland (avdød bodd i utland)`() {
dataFromPEN = PrefillTestHelper.lesPensjonsdataVedtakFraFil("/pensjonsinformasjon/vedtak/P6000-GP-IkkeUtland.xml")
Expand Down

0 comments on commit ffe2d9d

Please sign in to comment.