From 752566c7e3b66542bd4e910be4cb1c73a98be590 Mon Sep 17 00:00:00 2001 From: mariampervez Date: Mon, 25 Sep 2023 09:21:54 +0200 Subject: [PATCH 1/3] WIP - Tar i bruk bestemIdent fra Ep-personoppslag --- .../pensjon/prefill/PersonDataService.kt | 4 +- .../sed/PrefillErrorIntegrationTest.kt | 39 ++++++ ...SedPrefillP7000Mk2IntegrationSpringTest.kt | 132 +++++++++++++++++- 3 files changed, 172 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt index a915554b..8c4a7186 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt @@ -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) { @@ -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") diff --git a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt index 472945bd..9b801437 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt @@ -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 @@ -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" } @@ -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 """ { diff --git a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/SedPrefillP7000Mk2IntegrationSpringTest.kt b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/SedPrefillP7000Mk2IntegrationSpringTest.kt index b2f062e2..b05e8c77 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/SedPrefillP7000Mk2IntegrationSpringTest.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/SedPrefillP7000Mk2IntegrationSpringTest.kt @@ -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 @@ -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 @@ -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) @@ -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) From 069b95ab3a3d07e34338d0cf36840e3e4fa4a7ff Mon Sep 17 00:00:00 2001 From: mariampervez Date: Fri, 29 Sep 2023 13:23:40 +0200 Subject: [PATCH 2/3] =?UTF-8?q?F!-=20hentHovedpersonEktefelle=20h=C3=A5ndt?= =?UTF-8?q?erer=20n=C3=A5=20NPID=20p=C3=A5=20lik=20linje=20med=20NorskIden?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Daniel.skarpas@nav.no --- .../pensjon/prefill/PersonDataService.kt | 5 +- .../sed/PrefillErrorIntegrationTest.kt | 6 +- .../sed/PrefillUfoereIntegrationTest.kt | 131 +++++++++++------- .../pensjon/prefill/PersonDataServiceTest.kt | 29 ++++ 4 files changed, 114 insertions(+), 57 deletions(-) diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt index 8c4a7186..e0d8bfdc 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt @@ -9,6 +9,7 @@ import no.nav.eessi.pensjon.metrics.MetricsHelper import no.nav.eessi.pensjon.personoppslag.pdl.PersonService import no.nav.eessi.pensjon.personoppslag.pdl.PersonoppslagException import no.nav.eessi.pensjon.personoppslag.pdl.model.* +import no.nav.eessi.pensjon.personoppslag.pdl.model.Ident.Companion.bestemIdent import no.nav.eessi.pensjon.prefill.models.PersonDataCollection import no.nav.eessi.pensjon.shared.api.PrefillDataModel import no.nav.eessi.pensjon.shared.person.Fodselsnummer @@ -67,7 +68,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(Npid(prefillData.bruker.norskIdent)) + val forsikretPerson = personServiceHentPerson(bestemIdent(prefillData.bruker.norskIdent)) val gjenlevendeEllerAvdod = if (prefillData.avdod != null) { logger.info("Henter avød person") @@ -94,7 +95,7 @@ class PersonDataService(private val personService: PersonService, return try { logger.info("Henter ektefelle/partner (ekteType: ${sivilstand?.type})") - val ektefelleBruker = sivilstand?.relatertVedSivilstand?.let { personService.hentPerson(NorskIdent(it)) } + val ektefelleBruker = sivilstand?.relatertVedSivilstand?.let { personService.hentPerson(bestemIdent(it)) } ektefelleBruker?.takeUnless { it.erDoed() } } catch (ex: Exception) { logger.warn(ex.message) diff --git a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt index 9b801437..c97d9e2d 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillErrorIntegrationTest.kt @@ -59,12 +59,12 @@ class PrefillErrorIntegrationTest { private companion object { const val FNR_VOKSEN = "11067122781" // KRAFTIG VEGGPRYD - const val NPID_VOKSEN = "01220049651" // KRAFTIG VEGGPRYD + const val NPID_VOKSEN = "01220049651" const val AKTOER_ID = "0123456789000" } @Test - fun `prefill sed P2200 med vedtak, F_BH_BO_UTL og F_BH_MED_UTL mangler samt vedtak isBoddArbeidetUtland er false skal Exception`() { + fun `prefill sed P2200 som har vedtak, F_BH_BO_UTL men mangler F_BH_MED_UTL i tillegg til at isBoddArbeidetUtland er false så skal det kastes en Exception`() { every { kodeverkClient.finnLandkode(eq("NOR"))} returns "NO" every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID)) } returns NorskIdent(FNR_VOKSEN) @@ -101,7 +101,7 @@ 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`() { + fun `Prefill P2200 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) diff --git a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillUfoereIntegrationTest.kt b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillUfoereIntegrationTest.kt index 794bd70a..cf1ea099 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillUfoereIntegrationTest.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/integrationtest/sed/PrefillUfoereIntegrationTest.kt @@ -11,11 +11,8 @@ import no.nav.eessi.pensjon.eux.model.sed.SED import no.nav.eessi.pensjon.integrationtest.IntegrasjonsTestConfig import no.nav.eessi.pensjon.kodeverk.KodeverkClient 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 +import no.nav.eessi.pensjon.personoppslag.pdl.model.* import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentGruppe.* -import no.nav.eessi.pensjon.personoppslag.pdl.model.KjoennType -import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent import no.nav.eessi.pensjon.prefill.PersonPDLMock import no.nav.eessi.pensjon.prefill.PersonPDLMock.medBarn import no.nav.eessi.pensjon.prefill.PersonPDLMock.medFodsel @@ -44,6 +41,9 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.content import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status import org.springframework.web.client.RestTemplate +private const val NPID_VOKSEN = "01220049651" +private const val RINA_SAK = "22874955" + @SpringBootTest(classes = [IntegrasjonsTestConfig::class, UnsecuredWebMvcTestLauncher::class, PrefillUfoereIntegrationTest.TestConfig::class], webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @ActiveProfiles("unsecured-webmvctest", "excludeKodeverk") @AutoConfigureMockMvc @@ -64,7 +64,7 @@ class PrefillUfoereIntegrationTest { private companion object { const val FNR_VOKSEN = "11067122781" // KRAFTIG VEGGPRYD - const val FNR_VOKSEN_2 = "12312312312" // + const val FNR_VOKSEN_2 = "12312312312" const val AKTOER_ID = "0123456789000" } @@ -188,18 +188,14 @@ class PrefillUfoereIntegrationTest { //mock hent av aktoer/fnr for innkommende hovedperson every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(aktoerHovedperson)) } returns NorskIdent(pinHovedperson) - every { personService.hentPerson(NorskIdent(pinHovedperson)) } returns hovedPersonMedbarn //ektefelle every { personService.hentPerson(NorskIdent(pinEktefelledperson)) } returns ektefellePerson //barn every { personService.hentPerson(NorskIdent(pinBarn1)) } returns barn1 - every { personService.hentPerson(NorskIdent(pinBarn2)) } returns barn2 - //every { personService.hentPerson(NorskIdent(pinBarn3)) } returns barn3 - //pensjoninformasjon avsl. every { pensjonsinformasjonOidcRestTemplate.exchange(any(), any(), any>(), eq(String::class.java))} returns PrefillTestHelper.readXMLresponse("/pensjonsinformasjon/krav/P2200-AVSL.xml") @@ -414,7 +410,7 @@ class PrefillUfoereIntegrationTest { every { kodeverkClient.finnLandkode(any()) } returns "QX" - val apijson = dummyApijson(sakid = "22874955", aktoerId = AKTOER_ID, vedtakid = "5134513451345", sed = P2200.name) + val apijson = dummyApijson(sakid = RINA_SAK, aktoerId = AKTOER_ID, vedtakid = "5134513451345", sed = P2200.name) val result = mockMvc.perform(post("/sed/prefill") .contentType(MediaType.APPLICATION_JSON) @@ -425,54 +421,85 @@ class PrefillUfoereIntegrationTest { val response = result.response.getContentAsString(charset("UTF-8")) - val validResponse = """ - { - "sed" : "P2200", - "sedGVer" : "4", - "sedVer" : "2", - "nav" : { - "eessisak" : [ { - "institusjonsid" : "NO:noinst002", - "institusjonsnavn" : "NOINST002, NO INST002, NO", - "saksnummer" : "22874955", - "land" : "NO" - } ], - "bruker" : { - "person" : { - "pin" : [ { - "institusjonsnavn" : "NOINST002, NO INST002, NO", + val validResponse = validResponse(FNR_VOKSEN_2) + JSONAssert.assertEquals(response, validResponse, true) + } + + @Test + fun `Gitt en SED med bruker som har NPID, kravtype førstegangsbehandling Norge og vedtak bosatt utland så skal SEDen preutfylles`() { + + every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID)) } returns Npid(NPID_VOKSEN) + every { personService.hentPerson(Npid(NPID_VOKSEN)) } returns PersonPDLMock.createWith(true, "Lever", "Gjenlev", NPID_VOKSEN) + + every { pensjonsinformasjonOidcRestTemplate.exchange(any(), any(), any>(), eq(String::class.java))} returns + PrefillTestHelper.readXMLresponse("/pensjonsinformasjon/krav/P2200-UP-INNV.xml") + + every { pensjonsinformasjonOidcRestTemplate.exchange(eq("/vedtak/5134513451345"), any(), any>(), eq(String::class.java)) } returns + PrefillTestHelper.readXMLresponse("/pensjonsinformasjon/vedtak/P6000-APUtland-301.xml") + + every { kodeverkClient.finnLandkode(any()) } returns "QX" + + val apijson = dummyApijson(sakid = RINA_SAK, aktoerId = AKTOER_ID, vedtakid = "5134513451345", sed = P2200.name) + + 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")) + + val validResponse = validResponse(NPID_VOKSEN) + JSONAssert.assertEquals(response, validResponse, true) + } + + private fun validResponse(ident: String) = """ + { + "sed" : "P2200", + "sedGVer" : "4", + "sedVer" : "2", + "nav" : { + "eessisak" : [ { "institusjonsid" : "NO:noinst002", - "identifikator" : "$FNR_VOKSEN_2", + "institusjonsnavn" : "NOINST002, NO INST002, NO", + "saksnummer" : "22874955", "land" : "NO" } ], - "statsborgerskap" : [ { - "land" : "QX" - } ], - "etternavn" : "Gjenlev", - "fornavn" : "Lever", - "kjoenn" : "M", - "foedselsdato" : "1988-07-12" + "bruker" : { + "person" : { + "pin" : [ { + "institusjonsnavn" : "NOINST002, NO INST002, NO", + "institusjonsid" : "NO:noinst002", + "identifikator" : "$ident", + "land" : "NO" + } ], + "statsborgerskap" : [ { + "land" : "QX" + } ], + "etternavn" : "Gjenlev", + "fornavn" : "Lever", + "kjoenn" : "M", + "foedselsdato" : "1988-07-12" + }, + "adresse" : { + "gate" : "Oppoverbakken 66", + "by" : "SØRUMSAND", + "postnummer" : "1920", + "land" : "NO" + } + }, + "krav" : { + "dato" : "2019-07-15" + } }, - "adresse" : { - "gate" : "Oppoverbakken 66", - "by" : "SØRUMSAND", - "postnummer" : "1920", - "land" : "NO" + "pensjon" : { + "kravDato" : { + "dato" : "2019-07-15" + } } - }, - "krav" : { - "dato" : "2019-07-15" - } - }, - "pensjon" : { - "kravDato" : { - "dato" : "2019-07-15" } - } - } - """.trimIndent() - JSONAssert.assertEquals(response, validResponse, true) - } + """.trimIndent() private fun dummyApijson(sakid: String, vedtakid: String? = "", aktoerId: String, sed: String? = P2200.name, buc: String? = P_BUC_06.name, subject: String? = null, refperson: String? = null): String { diff --git a/src/test/kotlin/no/nav/eessi/pensjon/prefill/PersonDataServiceTest.kt b/src/test/kotlin/no/nav/eessi/pensjon/prefill/PersonDataServiceTest.kt index 722444b8..b0589e82 100644 --- a/src/test/kotlin/no/nav/eessi/pensjon/prefill/PersonDataServiceTest.kt +++ b/src/test/kotlin/no/nav/eessi/pensjon/prefill/PersonDataServiceTest.kt @@ -23,6 +23,8 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import org.springframework.web.server.ResponseStatusException +private const val NPID_VOKSEN = "01220049651" + internal class PersonDataServiceTest { companion object { @@ -162,6 +164,33 @@ internal class PersonDataServiceTest { } + @Test + fun `Innhenting av forsikret person med barn under 18 aar returnerer persondatacollection`() { + val barn1fnr = FodselsnummerGenerator.generateFnrForTest(12) + val barn2fnr = FodselsnummerGenerator.generateFnrForTest(19) + + val forelder = lagPerson(NPID_VOKSEN, "Christopher", "Robin").medBarn(barn1fnr).medBarn(barn2fnr) + val barn1 = lagPerson(barn2fnr, "Ole", "Brum").medForeldre(forelder) + val barn2 = lagPerson(barn1fnr, "Nasse", "Nøff").medForeldre(forelder) + + every { personService.hentPerson(Npid(NPID_VOKSEN)) } returns forelder + every { personService.hentPerson(NorskIdent(barn1fnr)) } returns barn1 + every { personService.hentPerson(NorskIdent(barn2fnr)) } returns barn2 + + val data = PrefillDataModelMother.initialPrefillDataModel(SedType.P2000, NPID_VOKSEN, SAK_ID, euxCaseId = EUX_RINA) + + val result = persondataService.hentPersonData(data) + + assertNull(result.ektefellePerson) + assertNull(result.sivilstandstype) + assertEquals(barn1, result.barnPersonList.firstOrNull()) + assertEquals(1, result.barnPersonList.size) + assertEquals(forelder, result.gjenlevendeEllerAvdod) + assertEquals(forelder, result.forsikretPerson) + + verify ( exactly = 2 ) { personService.hentPerson(any()) } + + } @Test fun `test henting av forsikretperson med avdod ektefelle for persondatacollection`() { From fc7cd9b183f1456f2297fe282d80b2d9702dcb21 Mon Sep 17 00:00:00 2001 From: mariampervez Date: Mon, 9 Oct 2023 15:41:01 +0200 Subject: [PATCH 3/3] f - Tar i bruk bestemIdent fra Ep-personoppslag --- build.gradle | 2 +- .../no/nav/eessi/pensjon/prefill/PersonDataService.kt | 8 +++----- .../eessi/pensjon/prefill/person/PrefillPDLAdresse.kt | 10 +++------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 87963f1d..ccd8decc 100644 --- a/build.gradle +++ b/build.gradle @@ -81,7 +81,7 @@ dependencies { exclude module: 'ep-metrics' exclude module: 'ep-logging' } - implementation("no.nav.eessi.pensjon:ep-personoppslag:13.1.14"){ + implementation("no.nav.eessi.pensjon:ep-personoppslag:13.1.16"){ exclude module: 'ep-eux' exclude module: 'ep-metrics' exclude module: 'ep-logging' diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt index e0d8bfdc..881a1ec1 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/PersonDataService.kt @@ -1,10 +1,7 @@ package no.nav.eessi.pensjon.prefill import jakarta.annotation.PostConstruct -import no.nav.eessi.pensjon.eux.model.SedType.P2000 -import no.nav.eessi.pensjon.eux.model.SedType.P2100 -import no.nav.eessi.pensjon.eux.model.SedType.P2200 -import no.nav.eessi.pensjon.eux.model.SedType.P6000 +import no.nav.eessi.pensjon.eux.model.SedType.* import no.nav.eessi.pensjon.metrics.MetricsHelper import no.nav.eessi.pensjon.personoppslag.pdl.PersonService import no.nav.eessi.pensjon.personoppslag.pdl.PersonoppslagException @@ -19,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus import org.springframework.stereotype.Service import org.springframework.web.server.ResponseStatusException + @Suppress("SpringJavaInjectionPointsAutowiringInspection") @Service class PersonDataService(private val personService: PersonService, @@ -72,7 +70,7 @@ class PersonDataService(private val personService: PersonService, val gjenlevendeEllerAvdod = if (prefillData.avdod != null) { logger.info("Henter avød person") - personService.hentPerson(Ident.bestemIdent(prefillData.avdod.norskIdent)) + personService.hentPerson(bestemIdent(prefillData.avdod.norskIdent)) } else { logger.info("Ingen avdød så settes til forsikretPerson") forsikretPerson diff --git a/src/main/kotlin/no/nav/eessi/pensjon/prefill/person/PrefillPDLAdresse.kt b/src/main/kotlin/no/nav/eessi/pensjon/prefill/person/PrefillPDLAdresse.kt index 2b9cd34e..6af1f1eb 100644 --- a/src/main/kotlin/no/nav/eessi/pensjon/prefill/person/PrefillPDLAdresse.kt +++ b/src/main/kotlin/no/nav/eessi/pensjon/prefill/person/PrefillPDLAdresse.kt @@ -6,12 +6,8 @@ import no.nav.eessi.pensjon.kodeverk.KodeverkClient import no.nav.eessi.pensjon.kodeverk.PostnummerService import no.nav.eessi.pensjon.metrics.MetricsHelper import no.nav.eessi.pensjon.personoppslag.pdl.PersonService -import no.nav.eessi.pensjon.personoppslag.pdl.model.AdressebeskyttelseGradering -import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent -import no.nav.eessi.pensjon.personoppslag.pdl.model.PostadresseIFrittFormat -import no.nav.eessi.pensjon.personoppslag.pdl.model.UtenlandskAdresse -import no.nav.eessi.pensjon.personoppslag.pdl.model.UtenlandskAdresseIFrittFormat -import no.nav.eessi.pensjon.personoppslag.pdl.model.Vegadresse +import no.nav.eessi.pensjon.personoppslag.pdl.model.* +import no.nav.eessi.pensjon.personoppslag.pdl.model.Ident.Companion.bestemIdent import no.nav.eessi.pensjon.utils.toJson import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -114,7 +110,7 @@ class PrefillPDLAdresse (private val postnummerService: PostnummerService, kontaktinformasjonForDoedsbo, landKode2Tegn ) { idenfikasjonsnummer: String -> - personService.hentPersonnavn(NorskIdent(idenfikasjonsnummer)) + personService.hentPersonnavn(bestemIdent(idenfikasjonsnummer)) ?: throw NullPointerException("Uventet nullverdi etter oppslag mot PDL på personnavn for $idenfikasjonsnummer") } }