From 986e79db6457d0854d8f13caa32ed8dafe68cc25 Mon Sep 17 00:00:00 2001 From: Anton Fofanov Date: Wed, 17 Jan 2024 16:23:53 +0100 Subject: [PATCH 1/3] add explicit mapping of request body to simuleringEndpoint --- .../simulering/model/domain/pen/DatoUtil.kt | 11 ++ .../simulering/model/domain/pen/InntektDto.kt | 8 ++ .../model/domain/pen/OpptjeningsperiodeDto.kt | 12 ++ .../pen/PensjonsbeholdningsperiodeDto.kt | 11 ++ .../SimulerOffentligTjenestepensjonRequest.kt | 25 ++++ .../model/domain/pen/SimuleringsdataDto.kt | 17 +++ .../model/domain/pen/SimuleringsperiodeDto.kt | 10 ++ .../domain/pen/SimulertAFPOffentligDto.kt | 6 + .../model/domain/pen/SimulertAFPPrivatDto.kt | 6 + .../model/domain/pen/TpForholdDto.kt | 6 + .../simulering/rest/SimuleringEndpoint.kt | 24 ++-- .../v1/models/DtoToV1DomainMapper.kt | 59 +++++++++ .../v1/models/domain/Simuleringsperiode.kt | 16 +-- .../v1/models/request/Simuleringsdata.kt | 12 +- .../v2/models/DtoToV2DomainMapper.kt | 86 ++++++++++++ .../models/request/SimulerPensjonRequestV2.kt | 2 +- .../simulering/v1/models/DefaultObjects.kt | 22 ++-- .../v1/models/DtoToV1DomainMapperTest.kt | 32 +++++ .../v1/models/request/SimulertAP2011Test.kt | 39 +++--- .../v2/models/DtoToV2DomainMapperTest.kt | 123 ++++++++++++++++++ 20 files changed, 470 insertions(+), 57 deletions(-) create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/InntektDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/OpptjeningsperiodeDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/PensjonsbeholdningsperiodeDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsdataDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsperiodeDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPOffentligDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPPrivatDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/TpForholdDto.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapper.kt create mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt create mode 100644 src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapperTest.kt create mode 100644 src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt new file mode 100644 index 00000000..c71b3560 --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt @@ -0,0 +1,11 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.time.format.DateTimeFormatter +import java.util.* + +object DatoUtil { + + fun Date.datoToString(): String? { + return DateTimeFormatter.ISO_LOCAL_DATE.format(this.toInstant()) + } +} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/InntektDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/InntektDto.kt new file mode 100644 index 00000000..a2446d6f --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/InntektDto.kt @@ -0,0 +1,8 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.util.* + +data class InntektDto( + val datoFom: Date, + val inntekt: Double, +) \ No newline at end of file diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/OpptjeningsperiodeDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/OpptjeningsperiodeDto.kt new file mode 100644 index 00000000..bc9e4d0d --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/OpptjeningsperiodeDto.kt @@ -0,0 +1,12 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.util.* + +data class OpptjeningsperiodeDto( + val stillingsprosent: Int, + val datoFom: Date, + val datoTom: Date, + val faktiskHovedlonn: Int, + val stillingsuavhengigTilleggslonn: Int, + val aldersgrense: Int, +) diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/PensjonsbeholdningsperiodeDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/PensjonsbeholdningsperiodeDto.kt new file mode 100644 index 00000000..a3d3c6f7 --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/PensjonsbeholdningsperiodeDto.kt @@ -0,0 +1,11 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.util.* + +data class PensjonsbeholdningsperiodeDto ( + val datoFom: Date, + val pensjonsbeholdning: Double, + val garantipensjonsbeholdning: Double, + val garantitilleggsbeholdning: Double, +) + diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt new file mode 100644 index 00000000..3ad3d192 --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt @@ -0,0 +1,25 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import no.nav.tjenestepensjon.simulering.v2.models.domain.SivilstandCodeEnum + +@JsonIgnoreProperties(ignoreUnknown = true) +data class SimulerOffentligTjenestepensjonRequest( + val fnr: String, + val fodselsdato: String, + val sisteTpnr: String?, + val sprak: String?, + val simulertAFPOffentlig: SimulertAFPOffentligDto?, + val simulertAFPPrivat: SimulertAFPPrivatDto?, + val sivilstandkode: SivilstandCodeEnum, + val inntektListe: List = emptyList(), + val pensjonsbeholdningsperiodeListe: List = emptyList(), + val simuleringsperiodeListe: List = emptyList(), + val simuleringsdataListe: List = emptyList(), + val tpForholdListe: List = emptyList(), +){ + + override fun toString(): String { + return "SimulerOffentligTjenestepensjonRequest(fodselsdato='$fodselsdato', sisteTpnr=$sisteTpnr, sprak=$sprak, simulertAFPOffentlig=$simulertAFPOffentlig, simulertAFPPrivat=$simulertAFPPrivat, sivilstandkode=$sivilstandkode, inntektListe=$inntektListe, pensjonsbeholdningsperiodeListe=$pensjonsbeholdningsperiodeListe, simuleringsperiodeListe=$simuleringsperiodeListe, simuleringsdataListe=$simuleringsdataListe, tpForholdListe=$tpForholdListe)" + } +} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsdataDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsdataDto.kt new file mode 100644 index 00000000..78160b98 --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsdataDto.kt @@ -0,0 +1,17 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.util.* + +data class SimuleringsdataDto ( + val datoFom: Date, + val andvendtTrygdetid: Int, + val poengArTom1991: Int, + val poengArFom1992: Int, + val uforegradVedOmregning: Int, + val basisgp: Double, + val basispt: Double, + val basistp: Double, + val delingstallUttak: Double, + val forholdstallUttak: Double, + val sluttpoengtall: Double, +) diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsperiodeDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsperiodeDto.kt new file mode 100644 index 00000000..4241fbdf --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimuleringsperiodeDto.kt @@ -0,0 +1,10 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +import java.util.* + +data class SimuleringsperiodeDto ( + val datoFom: Date, + val folketrygdUttaksgrad: Int, + val stillingsprosentOffentlig: Int, + val simulerAFPOffentligEtterfulgtAvAlder: Boolean, +) diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPOffentligDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPOffentligDto.kt new file mode 100644 index 00000000..e54554fe --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPOffentligDto.kt @@ -0,0 +1,6 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +data class SimulertAFPOffentligDto ( + val simulertAFPOffentligBrutto: Int, + val tpi: Int = 0, +) \ No newline at end of file diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPPrivatDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPPrivatDto.kt new file mode 100644 index 00000000..3bf60fcf --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulertAFPPrivatDto.kt @@ -0,0 +1,6 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +data class SimulertAFPPrivatDto ( + val afpOpptjeningTotalbelop: Int, + val kompensasjonstillegg: Double, +) \ No newline at end of file diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/TpForholdDto.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/TpForholdDto.kt new file mode 100644 index 00000000..3cef7453 --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/TpForholdDto.kt @@ -0,0 +1,6 @@ +package no.nav.tjenestepensjon.simulering.model.domain.pen + +data class TpForholdDto ( + val tpnr: String, + val opptjeningsperiodeListe: List = emptyList(), +) diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt index 00916ded..ced79c9c 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/rest/SimuleringEndpoint.kt @@ -2,7 +2,6 @@ package no.nav.tjenestepensjon.simulering.rest import com.fasterxml.jackson.core.JsonParseException import com.fasterxml.jackson.databind.JsonMappingException -import com.fasterxml.jackson.databind.ObjectMapper import no.nav.tjenestepensjon.simulering.AppMetrics import no.nav.tjenestepensjon.simulering.AppMetrics.Metrics.APP_NAME import no.nav.tjenestepensjon.simulering.AppMetrics.Metrics.APP_TOTAL_SIMULERING_CALLS @@ -17,20 +16,20 @@ import no.nav.tjenestepensjon.simulering.model.domain.FNR import no.nav.tjenestepensjon.simulering.model.domain.TPOrdning import no.nav.tjenestepensjon.simulering.model.domain.TpLeverandor import no.nav.tjenestepensjon.simulering.model.domain.TpLeverandor.EndpointImpl.REST +import no.nav.tjenestepensjon.simulering.model.domain.pen.SimulerOffentligTjenestepensjonRequest import no.nav.tjenestepensjon.simulering.service.TpClient import no.nav.tjenestepensjon.simulering.v1.consumer.FindTpLeverandorCallable -import no.nav.tjenestepensjon.simulering.v1.models.request.SimulerPensjonRequestV1 +import no.nav.tjenestepensjon.simulering.v1.models.DtoToV1DomainMapper.toSimulerPensjonRequestV1 import no.nav.tjenestepensjon.simulering.v1.service.SimuleringServiceV1 import no.nav.tjenestepensjon.simulering.v1.service.StillingsprosentService import no.nav.tjenestepensjon.simulering.v2.exceptions.ConnectToIdPortenException import no.nav.tjenestepensjon.simulering.v2.exceptions.ConnectToMaskinPortenException -import no.nav.tjenestepensjon.simulering.v2.models.request.SimulerPensjonRequestV2 +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.toSimulerPensjonRequestV2 import no.nav.tjenestepensjon.simulering.v2.service.SimuleringServiceV2 -import org.json.JSONObject import org.slf4j.LoggerFactory -import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.http.HttpStatus.* +import org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR +import org.springframework.http.HttpStatus.OK import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RequestBody @@ -53,20 +52,17 @@ class SimuleringEndpoint( ) { private val log = LoggerFactory.getLogger(javaClass) - @Autowired - lateinit var objectMapper: ObjectMapper - @PostMapping("/simulering") fun simuler( - @RequestBody body: String, @RequestHeader(value = NAV_CALL_ID, required = false) navCallId: String? + @RequestBody body: SimulerOffentligTjenestepensjonRequest, @RequestHeader(value = NAV_CALL_ID, required = false) navCallId: String? ): ResponseEntity { addHeaderToRequestContext(NAV_CALL_ID, navCallId) log.info("Processing nav-call-id: ${getHeaderFromRequestContext(NAV_CALL_ID)}") - log.debug("Received request: ${filterFnr(body)}") + log.debug("Received request: $body") metrics.incrementCounter(APP_NAME, APP_TOTAL_SIMULERING_CALLS) return try { - val fnr = FNR(JSONObject(body).get("fnr").toString()) + val fnr = FNR(body.fnr) val tpOrdningAndLeverandorMap = tpClient.getTpOrdningerForPerson(fnr).let(::getTpLeverandorer) val stillingsprosentResponse = stillingsprosentService.getStillingsprosentListe(fnr, tpOrdningAndLeverandorMap) @@ -79,7 +75,7 @@ class SimuleringEndpoint( if (tpLeverandor.impl == REST) { log.debug("Request simulation from ${tpLeverandor.name} using REST") val response = service2.simulerOffentligTjenestepensjon( - objectMapper.readValue(body, SimulerPensjonRequestV2::class.java), + body.toSimulerPensjonRequestV2(), stillingsprosentResponse, tpOrdning, tpLeverandor @@ -90,7 +86,7 @@ class SimuleringEndpoint( } else { log.debug("Request simulation from ${tpLeverandor.name} using SOAP") val response = service.simulerOffentligTjenestepensjon( - objectMapper.readValue(body, SimulerPensjonRequestV1::class.java), + body.toSimulerPensjonRequestV1(), stillingsprosentResponse, tpOrdning, tpLeverandor diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapper.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapper.kt new file mode 100644 index 00000000..af5ec85a --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapper.kt @@ -0,0 +1,59 @@ +package no.nav.tjenestepensjon.simulering.v1.models + +import no.nav.tjenestepensjon.simulering.model.domain.FNR +import no.nav.tjenestepensjon.simulering.model.domain.Pensjonsbeholdningsperiode +import no.nav.tjenestepensjon.simulering.model.domain.pen.* +import no.nav.tjenestepensjon.simulering.v1.models.domain.Inntekt +import no.nav.tjenestepensjon.simulering.v1.models.domain.Simuleringsperiode +import no.nav.tjenestepensjon.simulering.v1.models.request.SimulerPensjonRequestV1 +import no.nav.tjenestepensjon.simulering.v1.models.request.SimulertAFPPrivat +import java.time.LocalDate +import java.time.ZoneId +import java.util.Date + +object DtoToV1DomainMapper { + + fun SimulerOffentligTjenestepensjonRequest.toSimulerPensjonRequestV1() = SimulerPensjonRequestV1( + fnr = FNR(fnr), + sivilstandkode = this.sivilstandkode.toString(), + sprak = this.sprak ?: "norsk", + simuleringsperioder = simuleringsperiodeListe.map { it.toSimuleringsperiode() }, + simulertAFPOffentlig = this.simulertAFPOffentlig?.simulertAFPOffentligBrutto, + simulertAFPPrivat = this.simulertAFPPrivat?.toSimulertAFPPrivat(), + pensjonsbeholdningsperioder = this.pensjonsbeholdningsperiodeListe.map { it.toPensjonsbeholdningsperiode() }, + inntekter = this.inntektListe.map { it.toInntekt() } + ) + + private fun SimuleringsperiodeDto.toSimuleringsperiode() = + Simuleringsperiode( + datoFom = convertToLocalDate(datoFom), + utg = this.folketrygdUttaksgrad, + stillingsprosentOffentlig = this.stillingsprosentOffentlig, + //Følgende felt er ikke med i v1 +// poengArTom1991 = this.poengArTom1991, +// poengArFom1992 = this.poengArFom1992, +// sluttpoengtall = this.sluttpoengtall, +// anvendtTrygdetid = this.anvendtTrygdetid, +// forholdstall = this.forholdstall, +// delingstall = this.delingstall, +// uforegradVedOmregning = this.uforegradVedOmregning, +// delytelser = this.delytelser, + ) + + private fun SimulertAFPPrivatDto.toSimulertAFPPrivat() = + SimulertAFPPrivat(afpOpptjeningTotalbelop, kompensasjonstillegg) + + private fun PensjonsbeholdningsperiodeDto.toPensjonsbeholdningsperiode() = Pensjonsbeholdningsperiode( + datoFom = LocalDate.from(datoFom.toInstant().atZone(ZoneId.systemDefault())), + pensjonsbeholdning = this.pensjonsbeholdning.toInt(), + garantipensjonsbeholdning = this.garantipensjonsbeholdning.toInt(), + garantitilleggsbeholdning = this.garantitilleggsbeholdning.toInt(), + ) + + private fun InntektDto.toInntekt() = Inntekt(convertToLocalDate(datoFom), inntekt) + + private fun convertToLocalDate(dato: Date): LocalDate = + LocalDate.from(dato.toInstant().atZone(ZoneId.systemDefault())) +} + + diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/domain/Simuleringsperiode.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/domain/Simuleringsperiode.kt index 7037c1ff..293fb656 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/domain/Simuleringsperiode.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/domain/Simuleringsperiode.kt @@ -9,15 +9,15 @@ data class Simuleringsperiode( override var datoFom: LocalDate, var utg: Int, var stillingsprosentOffentlig: Int, - var poengArTom1991: Int, - var poengArFom1992: Int, - var sluttpoengtall: Double, - var anvendtTrygdetid: Int, - var forholdstall: Double, - var delingstall: Double, - var uforegradVedOmregning: Int, - var delytelser: List ) : Dateable { + var poengArTom1991: Int? = null + var poengArFom1992: Int? = null + var sluttpoengtall: Double? = null + var anvendtTrygdetid: Int? = null + var forholdstall: Double? = null + var delingstall: Double? = null + var uforegradVedOmregning: Int? = null + var delytelser: List = emptyList() @JsonIgnore fun isGradert() = utg < 100 diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/Simuleringsdata.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/Simuleringsdata.kt index 3d76e2e6..3a5d730d 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/Simuleringsdata.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/Simuleringsdata.kt @@ -16,12 +16,12 @@ data class Simuleringsdata( val uforegradVedOmregning: Int ) { constructor(periode: Simuleringsperiode) : this( - poengArTom1991 = periode.poengArTom1991, - poengArFom1992 = periode.poengArFom1992, - sluttpoengtall = periode.sluttpoengtall, - forholdstall_uttak = periode.forholdstall, - anvendtTrygdetid = periode.anvendtTrygdetid, - uforegradVedOmregning = periode.uforegradVedOmregning, + poengArTom1991 = periode.poengArTom1991!!, + poengArFom1992 = periode.poengArFom1992!!, + sluttpoengtall = periode.sluttpoengtall!!, + forholdstall_uttak = periode.forholdstall!!, + anvendtTrygdetid = periode.anvendtTrygdetid!!, + uforegradVedOmregning = periode.uforegradVedOmregning!!, basisgp = periode.getDelytelseBelop(DelytelseType.BASISGP), basispt = periode.getDelytelseBelop(DelytelseType.BASISPT), basistp = periode.getDelytelseBelop(DelytelseType.BASISTP), diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt new file mode 100644 index 00000000..bdc9008d --- /dev/null +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt @@ -0,0 +1,86 @@ +package no.nav.tjenestepensjon.simulering.v2.models + +import no.nav.tjenestepensjon.simulering.model.domain.FNR +import no.nav.tjenestepensjon.simulering.model.domain.Pensjonsbeholdningsperiode +import no.nav.tjenestepensjon.simulering.model.domain.pen.* +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.convertToLocalDate +import no.nav.tjenestepensjon.simulering.v2.models.domain.Opptjeningsperiode +import no.nav.tjenestepensjon.simulering.v2.models.request.* +import java.time.LocalDate +import java.time.ZoneId +import java.util.Date + +object DtoToV2DomainMapper { + + fun SimulerOffentligTjenestepensjonRequest.toSimulerPensjonRequestV2() = SimulerPensjonRequestV2( + fnr = FNR(fnr), + fodselsdato = this.fodselsdato, + sisteTpnr = this.sisteTpnr!!, + sprak = this.sprak ?: "norsk", + simulertAFPOffentlig = this.simulertAFPOffentlig?.let { + SimulertAFPOffentlig( + it.simulertAFPOffentligBrutto, + it.tpi + ) + }, + simulertAFPPrivat = this.simulertAFPPrivat?.toSimulertAFPPrivat(), + sivilstandkode = this.sivilstandkode, + inntektListe = this.inntektListe.map { it.toInntekt() }, + pensjonsbeholdningsperiodeListe = this.pensjonsbeholdningsperiodeListe.map { it.toPensjonsbeholdningsperiode() }, + simuleringsperiodeListe = simuleringsperiodeListe.map { it.toSimuleringsperiode() }, + simuleringsdataListe = this.simuleringsdataListe.map { it.toSimuleringsdata() }, + tpForholdListe = this.tpForholdListe.map { it.toTpForhold() }, + ) + + private fun SimuleringsperiodeDto.toSimuleringsperiode() = + Simuleringsperiode( + datoFom = datoFom.convertToLocalDate(), + folketrygdUttaksgrad = this.folketrygdUttaksgrad, + stillingsprosentOffentlig = this.stillingsprosentOffentlig, + simulerAFPOffentligEtterfulgtAvAlder = this.simulerAFPOffentligEtterfulgtAvAlder, + ) + + private fun SimulertAFPPrivatDto.toSimulertAFPPrivat() = + SimulertAFPPrivat(afpOpptjeningTotalbelop, kompensasjonstillegg) + + private fun PensjonsbeholdningsperiodeDto.toPensjonsbeholdningsperiode() = Pensjonsbeholdningsperiode( + datoFom = LocalDate.from(datoFom.toInstant().atZone(ZoneId.systemDefault())), + pensjonsbeholdning = this.pensjonsbeholdning.toInt(), + garantipensjonsbeholdning = this.garantipensjonsbeholdning.toInt(), + garantitilleggsbeholdning = this.garantitilleggsbeholdning.toInt(), + ) + + private fun InntektDto.toInntekt() = Inntekt(datoFom.convertToLocalDate(), inntekt) + + fun Date.convertToLocalDate(): LocalDate = + LocalDate.from(this.toInstant().atZone(ZoneId.systemDefault())) + + private fun SimuleringsdataDto.toSimuleringsdata() = Simuleringsdata( + datoFom = datoFom.convertToLocalDate(), + andvendtTrygdetid = this.andvendtTrygdetid, + poengArTom1991 = poengArTom1991, + poengArFom1992 = poengArFom1992, + uforegradVedOmregning = uforegradVedOmregning, + basisgp = this.basisgp, + basispt = this.basispt, + basistp = this.basistp, + delingstallUttak = this.delingstallUttak, + forholdstallUttak = this.forholdstallUttak, + sluttpoengtall = this.sluttpoengtall, + ) + + private fun TpForholdDto.toTpForhold() = TpForhold(this.tpnr, this.opptjeningsperiodeListe.map { + Opptjeningsperiode( + datoFom = it.datoFom.convertToLocalDate(), + datoTom = it.datoTom.convertToLocalDate(), + stillingsprosent = it.stillingsprosent.toDouble(), + aldersgrense = it.aldersgrense, + faktiskHovedlonn = it.faktiskHovedlonn, + stillingsuavhengigTilleggslonn = it.stillingsuavhengigTilleggslonn, + ) + }) +} + + + + diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/request/SimulerPensjonRequestV2.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/request/SimulerPensjonRequestV2.kt index 5e8af3e0..3c02ea93 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/request/SimulerPensjonRequestV2.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/request/SimulerPensjonRequestV2.kt @@ -16,5 +16,5 @@ data class SimulerPensjonRequestV2( var pensjonsbeholdningsperiodeListe: List = emptyList(), var simuleringsperiodeListe: List, var simuleringsdataListe: List, - var tpForholdListe: List? = emptyList() + var tpForholdListe: List = emptyList() ) diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DefaultObjects.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DefaultObjects.kt index fefabb75..65291e86 100644 --- a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DefaultObjects.kt +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DefaultObjects.kt @@ -61,16 +61,18 @@ val defaultSimuleringsperiode get() = Simuleringsperiode( datoFom = defaultDatoFom, utg = 0, - stillingsprosentOffentlig = 0, - poengArTom1991 = 0, - poengArFom1992 = 0, - sluttpoengtall = 0.0, - anvendtTrygdetid = 0, - forholdstall = 0.0, - delingstall = 0.0, - uforegradVedOmregning = 0, - delytelser = listOf(defaultDelytelse) + stillingsprosentOffentlig = 0 ) + .apply { + poengArTom1991 = 0 + poengArFom1992 = 0 + sluttpoengtall = 0.0 + anvendtTrygdetid = 0 + forholdstall = 0.0 + delingstall = 0.0 + uforegradVedOmregning = 0 + delytelser = listOf(defaultDelytelse) + } val defaultSimulertAFPPrivat get() = SimulertAFPPrivat(afpOpptjeningTotalbelop = 0, kompensasjonstillegg = 0.0) @@ -167,7 +169,7 @@ const val defaultInntektJson = """{"datoFom":"$defaultFomDateString","inntekt":0 const val defaultPensjonsbeholdningsperiodeJson = """{"datoFom":"$defaultFomDateString","pensjonsbeholdning":0,"garantipensjonsbeholdning":0,"garantitilleggsbeholdning":0}""" const val defaultSimulerPensjonRequestJson = - """{"fnr":"$defaultFNRString","sivilstandkode":"GIFT","sprak":"bogus","simuleringsperioder":[$defaultSimuleringsperiodeJson],"simulertAFPOffentlig":0,"simulertAFPPrivat":$defaultSimulertAFPPrivatJson,"pensjonsbeholdningsperioder":[$defaultPensjonsbeholdningsperiodeJson],"inntekter":[$defaultInntektJson]}""" + """{"fnr":"$defaultFNRString","fodselsdato":"1958-10-01","sivilstandkode":"GIFT","sprak":"bogus","simuleringsperioder":[$defaultSimuleringsperiodeJson],"simulertAFPOffentlig":null,"simulertAFPPrivat":$defaultSimulertAFPPrivatJson,"pensjonsbeholdningsperioder":[$defaultPensjonsbeholdningsperiodeJson],"inntekter":[$defaultInntektJson]}""" const val defaultSimuleringsdataJson = """{"poengArTom1991":0,"poengArFom1992":0,"sluttpoengtall":0.0,"anvendtTrygdetid":0,"basisgp":0.0,"basistp":0.0,"basispt":0.0,"forholdstall_uttak":0.0,"skjermingstillegg":0.0,"uforegradVedOmregning":0}""" const val defaultSimulertAP2011Json = diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapperTest.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapperTest.kt new file mode 100644 index 00000000..5bd8fc3a --- /dev/null +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/DtoToV1DomainMapperTest.kt @@ -0,0 +1,32 @@ +package no.nav.tjenestepensjon.simulering.v1.models + +import no.nav.tjenestepensjon.simulering.v1.models.DtoToV1DomainMapper.toSimulerPensjonRequestV1 +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.convertToLocalDate +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapperTest +import org.junit.jupiter.api.Test + +class DtoToV1DomainMapperTest { + + @Test + fun toSimulerPensjonRequestV1() { + + val req = DtoToV2DomainMapperTest.DummyRequest.create() + val res = req.toSimulerPensjonRequestV1() + + assert(res.fnr.fnr == req.fnr) + assert(res.sivilstandkode == req.sivilstandkode.toString()) + assert(res.sprak == req.sprak) + assert(res.inntekter[0].datoFom == req.inntektListe[0].datoFom.convertToLocalDate()) + assert(res.inntekter[0].inntekt == req.inntektListe[0].inntekt) + assert(res.simuleringsperioder[0].datoFom == req.simuleringsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.simuleringsperioder[0].utg == req.simuleringsperiodeListe[0].folketrygdUttaksgrad) + assert(res.simuleringsperioder[0].stillingsprosentOffentlig == req.simuleringsperiodeListe[0].stillingsprosentOffentlig) + assert(res.simulertAFPOffentlig == req.simulertAFPOffentlig?.simulertAFPOffentligBrutto) + assert(res.simulertAFPPrivat!!.afpOpptjeningTotalbelop == req.simulertAFPPrivat?.afpOpptjeningTotalbelop) + assert(res.simulertAFPPrivat!!.kompensasjonstillegg == req.simulertAFPPrivat?.kompensasjonstillegg) + assert(res.pensjonsbeholdningsperioder[0].datoFom == req.pensjonsbeholdningsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.pensjonsbeholdningsperioder[0].pensjonsbeholdning == req.pensjonsbeholdningsperiodeListe[0].pensjonsbeholdning.toInt()) + assert(res.pensjonsbeholdningsperioder[0].garantipensjonsbeholdning == req.pensjonsbeholdningsperiodeListe[0].garantipensjonsbeholdning.toInt()) + assert(res.pensjonsbeholdningsperioder[0].garantitilleggsbeholdning == req.pensjonsbeholdningsperiodeListe[0].garantitilleggsbeholdning.toInt()) + } +} \ No newline at end of file diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/SimulertAP2011Test.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/SimulertAP2011Test.kt index 875d7754..0e107f9d 100644 --- a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/SimulertAP2011Test.kt +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v1/models/request/SimulertAP2011Test.kt @@ -20,42 +20,45 @@ internal class SimulertAP2011Test { Simuleringsperiode( utg = UTG, datoFom = LocalDate.of(YEAR_FOM, MONTH_FOM, DAY_FOM), - delingstall = DELLINGSTALL, - poengArTom1991 = POENG_AR_TOM_1991, - poengArFom1992 = POENG_AR_FOM_1992, - sluttpoengtall = SLUTTPOENGTALL, - anvendtTrygdetid = ANVENDT_TRYGDETID, - forholdstall = FORHOLDSTALL, - uforegradVedOmregning = UFERGRAD_VED_OMREGNING, - stillingsprosentOffentlig = STILLINGSPROSENT_OFFENTLIG, + stillingsprosentOffentlig = STILLINGSPROSENT_OFFENTLIG + ).apply { + delingstall = DELLINGSTALL + poengArTom1991 = POENG_AR_TOM_1991 + poengArFom1992 = POENG_AR_FOM_1992 + sluttpoengtall = SLUTTPOENGTALL + anvendtTrygdetid = ANVENDT_TRYGDETID + forholdstall = FORHOLDSTALL + uforegradVedOmregning = UFERGRAD_VED_OMREGNING delytelser = listOf( Delytelse(BASISGP, BASISGP_), Delytelse(BASISPT, BASISPT_), Delytelse(BASISTP, BASISTP_), Delytelse(SKJERMINGSTILLEGG, SKJERMINGSTILLEGG_) ) - ) + } + } heltUttak = HeltUttak.run { Simuleringsperiode( utg = UTG, datoFom = LocalDate.of(YEAR_FOM, MONTH_FOM, DAY_FOM), - delingstall = DELLINGSTALL, - poengArTom1991 = POENG_AR_TOM_1991, - poengArFom1992 = POENG_AR_FOM_1992, - sluttpoengtall = SLUTTPOENGTALL, - anvendtTrygdetid = ANVENDT_TRYGDETID, - forholdstall = FORHOLDSTALL, - uforegradVedOmregning = UFERGRAD_VED_OMREGNING, - stillingsprosentOffentlig = STILLINGSPROSENT_OFFENTLIG, + stillingsprosentOffentlig = STILLINGSPROSENT_OFFENTLIG + ).apply { + delingstall = DELLINGSTALL + poengArTom1991 = POENG_AR_TOM_1991 + poengArFom1992 = POENG_AR_FOM_1992 + sluttpoengtall = SLUTTPOENGTALL + anvendtTrygdetid = ANVENDT_TRYGDETID + forholdstall = FORHOLDSTALL + uforegradVedOmregning = UFERGRAD_VED_OMREGNING delytelser = listOf( Delytelse(BASISGP, BASISGP_), Delytelse(BASISPT, BASISPT_), Delytelse(BASISTP, BASISTP_), Delytelse(SKJERMINGSTILLEGG, SKJERMINGSTILLEGG_) ) - ) + } } } diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt new file mode 100644 index 00000000..f61abd6c --- /dev/null +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt @@ -0,0 +1,123 @@ +package no.nav.tjenestepensjon.simulering.v2.models + +import no.nav.tjenestepensjon.simulering.model.domain.pen.* +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.convertToLocalDate +import no.nav.tjenestepensjon.simulering.v2.models.DtoToV2DomainMapper.toSimulerPensjonRequestV2 +import no.nav.tjenestepensjon.simulering.v2.models.domain.SivilstandCodeEnum +import org.junit.jupiter.api.Test +import java.time.LocalDate + +import java.util.* + +class DtoToV2DomainMapperTest { + + @Test + fun toSimulerPensjonRequestV2() { + val req = DummyRequest.create() + + val res = req.toSimulerPensjonRequestV2() + assert(res.fnr.fnr == req.fnr) + assert(res.fodselsdato == req.fodselsdato) + assert(res.sisteTpnr == req.sisteTpnr) + assert(res.sprak == req.sprak) + assert(res.simulertAFPOffentlig!!.simulertAFPOffentligBrutto == req.simulertAFPOffentlig?.simulertAFPOffentligBrutto) + assert(res.simulertAFPOffentlig!!.tpi == req.simulertAFPOffentlig?.tpi) + assert(res.simulertAFPPrivat!!.afpOpptjeningTotalbelop == req.simulertAFPPrivat?.afpOpptjeningTotalbelop) + assert(res.simulertAFPPrivat!!.kompensasjonstillegg == req.simulertAFPPrivat?.kompensasjonstillegg) + assert(res.sivilstandkode == req.sivilstandkode) + assert(res.inntektListe[0].datoFom == req.inntektListe[0].datoFom.convertToLocalDate()) + assert(res.inntektListe[0].inntekt == req.inntektListe[0].inntekt) + assert(res.pensjonsbeholdningsperiodeListe[0].datoFom == req.pensjonsbeholdningsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.pensjonsbeholdningsperiodeListe[0].pensjonsbeholdning == req.pensjonsbeholdningsperiodeListe[0].pensjonsbeholdning.toInt()) + assert(res.pensjonsbeholdningsperiodeListe[0].garantipensjonsbeholdning == req.pensjonsbeholdningsperiodeListe[0].garantipensjonsbeholdning.toInt()) + assert(res.pensjonsbeholdningsperiodeListe[0].garantitilleggsbeholdning == req.pensjonsbeholdningsperiodeListe[0].garantitilleggsbeholdning.toInt()) + assert(res.simuleringsperiodeListe[0].datoFom == req.simuleringsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.simuleringsperiodeListe[0].folketrygdUttaksgrad == req.simuleringsperiodeListe[0].folketrygdUttaksgrad) + assert(res.simuleringsperiodeListe[0].stillingsprosentOffentlig == req.simuleringsperiodeListe[0].stillingsprosentOffentlig) + assert(res.simuleringsperiodeListe[0].simulerAFPOffentligEtterfulgtAvAlder == req.simuleringsperiodeListe[0].simulerAFPOffentligEtterfulgtAvAlder) + assert(res.simuleringsdataListe[0].datoFom == req.simuleringsdataListe[0].datoFom.convertToLocalDate()) + assert(res.simuleringsdataListe[0].andvendtTrygdetid == req.simuleringsdataListe[0].andvendtTrygdetid) + assert(res.simuleringsdataListe[0].poengArTom1991 == req.simuleringsdataListe[0].poengArTom1991) + assert(res.simuleringsdataListe[0].poengArFom1992 == req.simuleringsdataListe[0].poengArFom1992) + assert(res.simuleringsdataListe[0].uforegradVedOmregning == req.simuleringsdataListe[0].uforegradVedOmregning) + assert(res.tpForholdListe[0].tpnr == req.tpForholdListe[0].tpnr) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsprosent.toInt() == req.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsprosent) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoFom == req.tpForholdListe[0].opptjeningsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoTom == req.tpForholdListe[0].opptjeningsperiodeListe[0].datoTom.convertToLocalDate()) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn == req.tpForholdListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn == req.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].aldersgrense == req.tpForholdListe[0].opptjeningsperiodeListe[0].aldersgrense) + + } + + object DummyRequest { + + fun create() = SimulerOffentligTjenestepensjonRequest( + fnr = "01505801195", + fodselsdato = LocalDate.of(1958, 10, 1).toString(), + sisteTpnr = "sisteTpnr", + sprak = "sprak", + simulertAFPOffentlig = SimulertAFPOffentligDto( + simulertAFPOffentligBrutto = 1, + tpi = 2 + ), + simulertAFPPrivat = SimulertAFPPrivatDto( + afpOpptjeningTotalbelop = 3, + kompensasjonstillegg = 4.0 + ), + sivilstandkode = SivilstandCodeEnum.GIFT, + inntektListe = listOf( + InntektDto( + datoFom = Date(), + inntekt = 5.0 + ) + ), + pensjonsbeholdningsperiodeListe = listOf( + PensjonsbeholdningsperiodeDto( + datoFom = Date(), + pensjonsbeholdning = 6.0, + garantipensjonsbeholdning = 7.0, + garantitilleggsbeholdning = 8.0 + ) + ), + simuleringsperiodeListe = listOf( + SimuleringsperiodeDto( + datoFom = Date(), + folketrygdUttaksgrad = 9, + stillingsprosentOffentlig = 10, + simulerAFPOffentligEtterfulgtAvAlder = true + ) + ), + simuleringsdataListe = listOf( + SimuleringsdataDto( + datoFom = Date(), + andvendtTrygdetid = 11, + poengArTom1991 = 12, + poengArFom1992 = 13, + uforegradVedOmregning = 14, + basisgp = 15.0, + basispt = 16.0, + basistp = 17.0, + delingstallUttak = 18.0, + forholdstallUttak = 19.0, + sluttpoengtall = 20.0 + ) + ), + tpForholdListe = listOf( + TpForholdDto( + tpnr = "tpnr", + opptjeningsperiodeListe = listOf( + OpptjeningsperiodeDto( + stillingsprosent = 15, + datoFom = Date(), + datoTom = Date(), + faktiskHovedlonn = 16, + stillingsuavhengigTilleggslonn = 17, + aldersgrense = 18 + ) + ) + ) + ) + ) + } +} From 8f4a2e8742fa751df212690a40ca975ea63048f4 Mon Sep 17 00:00:00 2001 From: Anton Fofanov Date: Thu, 18 Jan 2024 09:33:54 +0100 Subject: [PATCH 2/3] make tpForholdListe nullable --- .../pen/SimulerOffentligTjenestepensjonRequest.kt | 2 +- .../simulering/v2/models/DtoToV2DomainMapper.kt | 2 +- .../v2/models/DtoToV2DomainMapperTest.kt | 15 ++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt index 3ad3d192..4bb80add 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/SimulerOffentligTjenestepensjonRequest.kt @@ -16,7 +16,7 @@ data class SimulerOffentligTjenestepensjonRequest( val pensjonsbeholdningsperiodeListe: List = emptyList(), val simuleringsperiodeListe: List = emptyList(), val simuleringsdataListe: List = emptyList(), - val tpForholdListe: List = emptyList(), + val tpForholdListe: List? = emptyList(), ){ override fun toString(): String { diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt index bdc9008d..a48e9313 100644 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt +++ b/src/main/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapper.kt @@ -29,7 +29,7 @@ object DtoToV2DomainMapper { pensjonsbeholdningsperiodeListe = this.pensjonsbeholdningsperiodeListe.map { it.toPensjonsbeholdningsperiode() }, simuleringsperiodeListe = simuleringsperiodeListe.map { it.toSimuleringsperiode() }, simuleringsdataListe = this.simuleringsdataListe.map { it.toSimuleringsdata() }, - tpForholdListe = this.tpForholdListe.map { it.toTpForhold() }, + tpForholdListe = this.tpForholdListe?.map { it.toTpForhold() } ?: emptyList(), ) private fun SimuleringsperiodeDto.toSimuleringsperiode() = diff --git a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt index f61abd6c..fa4cc526 100644 --- a/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt +++ b/src/test/kotlin/no/nav/tjenestepensjon/simulering/v2/models/DtoToV2DomainMapperTest.kt @@ -40,13 +40,14 @@ class DtoToV2DomainMapperTest { assert(res.simuleringsdataListe[0].poengArTom1991 == req.simuleringsdataListe[0].poengArTom1991) assert(res.simuleringsdataListe[0].poengArFom1992 == req.simuleringsdataListe[0].poengArFom1992) assert(res.simuleringsdataListe[0].uforegradVedOmregning == req.simuleringsdataListe[0].uforegradVedOmregning) - assert(res.tpForholdListe[0].tpnr == req.tpForholdListe[0].tpnr) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsprosent.toInt() == req.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsprosent) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoFom == req.tpForholdListe[0].opptjeningsperiodeListe[0].datoFom.convertToLocalDate()) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoTom == req.tpForholdListe[0].opptjeningsperiodeListe[0].datoTom.convertToLocalDate()) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn == req.tpForholdListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn == req.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn) - assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].aldersgrense == req.tpForholdListe[0].opptjeningsperiodeListe[0].aldersgrense) + val reqForholdsListe = req.tpForholdListe!! + assert(res.tpForholdListe[0].tpnr == reqForholdsListe[0].tpnr) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsprosent.toInt() == reqForholdsListe[0].opptjeningsperiodeListe[0].stillingsprosent) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoFom == reqForholdsListe[0].opptjeningsperiodeListe[0].datoFom.convertToLocalDate()) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].datoTom == reqForholdsListe[0].opptjeningsperiodeListe[0].datoTom.convertToLocalDate()) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn == reqForholdsListe[0].opptjeningsperiodeListe[0].faktiskHovedlonn) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn == reqForholdsListe[0].opptjeningsperiodeListe[0].stillingsuavhengigTilleggslonn) + assert(res.tpForholdListe[0].opptjeningsperiodeListe[0].aldersgrense == reqForholdsListe[0].opptjeningsperiodeListe[0].aldersgrense) } From eadbb3d20cedad3dfb80559245d73437112184f7 Mon Sep 17 00:00:00 2001 From: Anton Fofanov Date: Fri, 19 Jan 2024 09:05:57 +0100 Subject: [PATCH 3/3] remove unused code --- .../simulering/model/domain/pen/DatoUtil.kt | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt diff --git a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt b/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt deleted file mode 100644 index c71b3560..00000000 --- a/src/main/kotlin/no/nav/tjenestepensjon/simulering/model/domain/pen/DatoUtil.kt +++ /dev/null @@ -1,11 +0,0 @@ -package no.nav.tjenestepensjon.simulering.model.domain.pen - -import java.time.format.DateTimeFormatter -import java.util.* - -object DatoUtil { - - fun Date.datoToString(): String? { - return DateTimeFormatter.ISO_LOCAL_DATE.format(this.toInstant()) - } -} \ No newline at end of file