Skip to content

Commit

Permalink
WIP - Tar i bruk bestemIdent fra Ep-personoppslag
Browse files Browse the repository at this point in the history
  • Loading branch information
MariamPervez committed Sep 25, 2023
1 parent 81f1731 commit 752566c
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class PersonDataService(private val personService: PersonService,
}
}

private fun personServiceHentPerson(ident: NorskIdent): Person? {
private fun personServiceHentPerson(ident: Ident): Person? {
return try {
personService.hentPerson(ident) ?: throw NullPointerException()
} catch (np: NullPointerException) {
Expand All @@ -67,7 +67,7 @@ class PersonDataService(private val personService: PersonService,
private fun hentPersoner(prefillData: PrefillDataModel, fyllUtBarnListe: Boolean = false): PersonDataCollection {
return HentPerson.measure {
logger.info("Henter hovedperson/forsikret/gjenlevende")
val forsikretPerson = personServiceHentPerson(NorskIdent(prefillData.bruker.norskIdent))
val forsikretPerson = personServiceHentPerson(Npid(prefillData.bruker.norskIdent))

val gjenlevendeEllerAvdod = if (prefillData.avdod != null) {
logger.info("Henter avød person")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import no.nav.eessi.pensjon.personoppslag.pdl.PersonService
import no.nav.eessi.pensjon.personoppslag.pdl.model.AktoerId
import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentGruppe.FOLKEREGISTERIDENT
import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent
import no.nav.eessi.pensjon.personoppslag.pdl.model.Npid
import no.nav.eessi.pensjon.prefill.PensjonsinformasjonService
import no.nav.eessi.pensjon.prefill.PersonPDLMock
import no.nav.pensjon.v1.kravhistorikk.V1KravHistorikk
Expand Down Expand Up @@ -58,6 +59,7 @@ class PrefillErrorIntegrationTest {

private companion object {
const val FNR_VOKSEN = "11067122781" // KRAFTIG VEGGPRYD
const val NPID_VOKSEN = "01220049651" // KRAFTIG VEGGPRYD
const val AKTOER_ID = "0123456789000"
}

Expand Down Expand Up @@ -98,6 +100,43 @@ class PrefillErrorIntegrationTest {

}

@Test
fun `Prefill P2200 for bruker med npid som har vedtak med F_BH_BO_UTL men F_BH_MED_UTL mangler i tillegg til at vedtak isBoddArbeidetUtland er false så skal det kastes en Exception`() {

every { kodeverkClient.finnLandkode(eq("NOR"))} returns "NO"
every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID)) } returns Npid(NPID_VOKSEN)
every { personService.hentPerson(Npid(NPID_VOKSEN)) } returns PersonPDLMock.createWith()

val sak = V1Sak()
sak.sakType = UFOREP.toString()
sak.sakId = 100
sak.kravHistorikkListe = V1KravHistorikkListe()
val krav = V1KravHistorikk()
krav.kravType = "REVURD"
krav.kravId = "1"
krav.status = "INNV"
sak.kravHistorikkListe.kravHistorikkListe.add(krav)

every { pensjoninformasjonservice.hentRelevantPensjonSak(any(), any()) } returns sak

val vedtak = V1Vedtak()
vedtak.isBoddArbeidetUtland = false
vedtak.kravGjelder = "REVURD"

every { pensjoninformasjonservice.hentRelevantVedtakHvisFunnet("231231231") } returns vedtak

val apijson = dummyApijson(sakid = "1232123123", aktoerId = AKTOER_ID, vedtakid = "231231231", sed = P2200.name, buc = P_BUC_03.name)
val expectedError = """Du kan ikke opprette krav-SED P2200 hvis ikke "bodd/arbeidet i utlandet" er krysset av""".trimIndent()

mockMvc.perform(
MockMvcRequestBuilders.post("/sed/prefill")
.contentType(MediaType.APPLICATION_JSON)
.content(apijson))
.andExpect(MockMvcResultMatchers.status().isBadRequest)
.andExpect(MockMvcResultMatchers.status().reason(Matchers.containsString(expectedError)))

}

private fun dummyApijson(sakid: String, vedtakid: String? = "", aktoerId: String, sed: String? = P2000.name, buc: String? = P_BUC_06.name, subject: String? = null, refperson: String? = null): String {
return """
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import no.nav.eessi.pensjon.personoppslag.pdl.model.AktoerId
import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentGruppe
import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentGruppe.*
import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent
import no.nav.eessi.pensjon.personoppslag.pdl.model.Npid
import no.nav.eessi.pensjon.prefill.PensjonsinformasjonService
import no.nav.eessi.pensjon.prefill.PersonPDLMock
import no.nav.eessi.pensjon.shared.api.ApiRequest
Expand Down Expand Up @@ -48,6 +49,8 @@ import org.springframework.util.ResourceUtils
import org.springframework.web.client.RestTemplate
import java.time.LocalDate

private const val NPID_VOKSEN = "01220049651"

@SpringBootTest(classes = [IntegrasjonsTestConfig::class, UnsecuredWebMvcTestLauncher::class], webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("unsecured-webmvctest", "excludeKodeverk")
@AutoConfigureMockMvc
Expand Down Expand Up @@ -185,7 +188,7 @@ class SedPrefillP7000Mk2IntegrationSpringTest {
@Throws(Exception::class)
fun `prefill sed P7000 - Gitt gjenlevendepensjon med flere P6000 med avslag skal det preutfylles gyldig SED`() {
every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID))} returns NorskIdent(FNR_VOKSEN_3)
every { personService.hentIdent(IdentGruppe.AKTORID, NorskIdent(FNR_VOKSEN_4)) } returns AktoerId(AKTOER_ID_2)
every { personService.hentIdent(AKTORID, NorskIdent(FNR_VOKSEN_4)) } returns AktoerId(AKTOER_ID_2)
every { personService.hentPerson(NorskIdent(FNR_VOKSEN_3)) } returns PersonPDLMock.createWith(true, "Lever", "Gjenlev", FNR_VOKSEN_3, AKTOER_ID)
every { personService.hentPerson(NorskIdent(FNR_VOKSEN_4)) } returns PersonPDLMock.createWith(true, "Avdød", "Død", FNR_VOKSEN_4, AKTOER_ID_2, true)

Expand Down Expand Up @@ -308,6 +311,133 @@ class SedPrefillP7000Mk2IntegrationSpringTest {
JSONAssert.assertEquals(response, validResponse, false)
}

@Test
@Throws(Exception::class)
fun `prefill sed P7000 for Npid bruker - Gitt gjenlevendepensjon med flere P6000 med avslag skal det preutfylles gyldig SED`() {
every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID))} returns Npid(NPID_VOKSEN)
every { personService.hentIdent(AKTORID, NorskIdent(FNR_VOKSEN_4)) } returns AktoerId(AKTOER_ID_2)
every { personService.hentPerson(Npid(NPID_VOKSEN)) } returns PersonPDLMock.createWith(true, "Lever", "Gjenlev", NPID_VOKSEN, AKTOER_ID)
every { personService.hentPerson(NorskIdent(FNR_VOKSEN_4)) } returns PersonPDLMock.createWith(true, "Avdød", "Død", FNR_VOKSEN_4, AKTOER_ID_2, true)

val sak = V1Sak()
sak.sakType = EPSaktype.GJENLEV.toString()
sak.sakId = 100
sak.kravHistorikkListe = V1KravHistorikkListe()

every { pensjoninformasjonservice.hentRelevantPensjonSak(any(), any()) } returns sak
every { kodeverkClient.finnLandkode(any()) } returns "QX"


//mock p6000 fra RINA med data som skal benyttes i P7000
val p6000fraRequest = listOf(mockP6000requestdata("SE","P6000SE-INNV.json"), mockP6000requestdata("NO", "P6000SE-INNV.json"))
val payload = mapAnyToJson(p6000fraRequest)

//mock apiRequest
val subject = dummyApiSubject(FNR_VOKSEN_4)
val apijson = dummyApiRequest(sakid = "21337890", aktoerId = AKTOER_ID, sed = P7000, buc = P_BUC_02, subject = subject, payload = payload ).toJson()

val validResponse = """
{
"sed" : "P7000",
"nav" : {
"eessisak" : [ {
"institusjonsid" : "NO:noinst002",
"institusjonsnavn" : "NOINST002, NO INST002, NO",
"saksnummer" : "21337890",
"land" : "NO"
}, {
"institusjonsid" : "2342145134",
"institusjonsnavn" : "NOINST002, NO INST002, NO",
"saksnummer" : "22874955",
"land" : "SE"
} ],
"bruker" : {
"person" : {
"pin" : [ {
"institusjonsnavn" : "NOINST002, NO INST002, NO",
"institusjonsid" : "NO:noinst002",
"identifikator" : "9876543210",
"land" : "NO"
} ],
"etternavn" : "Død",
"fornavn" : "Avdød",
"kjoenn" : "M",
"foedselsdato" : "1921-07-12"
}
},
"ektefelle" : {
"person" : {
"etternavn" : "Død"
}
}
},
"pensjon" : {
"gjenlevende" : {
"person" : {
"pin" : [ {
"institusjonsnavn" : "NOINST002, NO INST002, NO",
"institusjonsid" : "NO:noinst002",
"identifikator" : "$NPID_VOKSEN",
"land" : "NO"
} ],
"statsborgerskap" : [ {
"land" : "QX"
} ],
"etternavn" : "Gjenlev",
"fornavn" : "Lever",
"kjoenn" : "M",
"foedselsdato" : "1988-07-12",
"rolle" : "01"
},
"adresse" : {
"gate" : "Oppoverbakken 66",
"by" : "SØRUMSAND",
"postnummer" : "1920",
"land" : "NO"
}
},
"samletVedtak" : {
"avslag" : [ {
"pensjonType" : "01",
"begrunnelse" : "03",
"dato" : "2019-10-01",
"tidsfristForRevurdering" : "seven weeks from the date the decision is received",
"adressatforRevurderingAvslag" : [ {
"adressatforrevurdering" : "Olesgate 15\nOslo\n0130\nNO"
} ]
}, {
"pensjonType" : "01",
"begrunnelse" : "03",
"dato" : "2019-10-01",
"tidsfristForRevurdering" : "seven weeks from the date the decision is received",
"pin" : {
"institusjonsnavn" : "NOINST002, NO INST002, NO",
"institusjonsid" : "NO:noinst002",
"identifikator" : "11067122781",
"land" : "NO"
},
"adressatforRevurderingAvslag" : [ {
"adressatforrevurdering" : "Olesgate 15\nOslo\n0130\nNO"
} ]
} ]
}
},
"sedGVer" : "4",
"sedVer" : "2"
}
""".trimIndent()

val result = mockMvc.perform(post("/sed/prefill")
.contentType(MediaType.APPLICATION_JSON)
.content(apijson))
.andExpect(status().isOk)
.andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE))
.andReturn()

val response = result.response.getContentAsString(charset("UTF-8"))
JSONAssert.assertEquals(response, validResponse, false)
}

@Test
fun `prefill sed P7000 - Gitt gjenlevendepensjon med to P6000 med godkjent pensjon skal det preutfylles gyldig SED`() {
every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID))} returns NorskIdent(FNR_VOKSEN_3)
Expand Down

0 comments on commit 752566c

Please sign in to comment.