Skip to content

Commit

Permalink
F!- hentHovedpersonEktefelle håndterer nå NPID på lik linje med Norsk…
Browse files Browse the repository at this point in the history
…Ident

Co-authored-by: [email protected]
  • Loading branch information
MariamPervez committed Sep 29, 2023
1 parent 752566c commit 069b95a
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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")
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 skal det kastes en Exception`() {

every { kodeverkClient.finnLandkode(eq("NOR"))} returns "NO"
every { personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(AKTOER_ID)) } returns NorskIdent(FNR_VOKSEN)
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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"
}

Expand Down Expand Up @@ -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<String>(), any(), any<HttpEntity<Unit>>(), eq(String::class.java))} returns PrefillTestHelper.readXMLresponse("/pensjonsinformasjon/krav/P2200-AVSL.xml")

Expand Down Expand Up @@ -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)
Expand All @@ -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<String>(), any(), any<HttpEntity<Unit>>(), eq(String::class.java))} returns
PrefillTestHelper.readXMLresponse("/pensjonsinformasjon/krav/P2200-UP-INNV.xml")

every { pensjonsinformasjonOidcRestTemplate.exchange(eq("/vedtak/5134513451345"), any(), any<HttpEntity<Unit>>(), 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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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`() {

Expand Down

0 comments on commit 069b95a

Please sign in to comment.