Skip to content

Commit

Permalink
Rettet Orika-mapping av enums til å bruke eksplisitt JSON-verdi.
Browse files Browse the repository at this point in the history
  • Loading branch information
rfc3092 committed Jul 11, 2024
1 parent 787d6ac commit 19d4b6e
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -104,15 +104,32 @@ public void mapAtoB(RsInntektsmelding.Inntektsmelding rsInntektsmelding,
inntektsmelding.setStartdatoForeldrepengeperiode(toLocalDateTime(rsInntektsmelding.getStartdatoForeldrepengeperiode()));

inntektsmelding.setArbeidsforhold(mapperFacade.map(rsInntektsmelding.getArbeidsforhold(), RsArbeidsforhold.class));
inntektsmelding.setGjenopptakelseNaturalytelseListe(rsInntektsmelding.getGjenopptakelseNaturalytelseListe().stream()
.map(ytelse -> mapperFacade.map(ytelse, RsNaturalytelseDetaljer.class))
.toList());

inntektsmelding.setNaerRelasjon(isTrue(rsInntektsmelding.getNaerRelasjon()));
inntektsmelding.setOmsorgspenger(mapperFacade.map(rsInntektsmelding.getOmsorgspenger(), RsOmsorgspenger.class));
inntektsmelding.setOpphoerAvNaturalytelseListe(rsInntektsmelding.getOpphoerAvNaturalytelseListe().stream()
.map(ytelse -> mapperFacade.map(ytelse, RsNaturalytelseDetaljer.class))
.toList());

inntektsmelding.setOpphoerAvNaturalytelseListe(
rsInntektsmelding
.getOpphoerAvNaturalytelseListe()
.stream()
.map(ytelse -> {
var mapped = mapperFacade.map(ytelse, RsNaturalytelseDetaljer.class);
mapped.setNaturalytelseType(ytelse.getNaturalytelseType().getJsonValue()); // Don't use the string representation of the enum; use the JSON value corresponding to the enum.
return mapped;
})
.toList()
);
inntektsmelding.setGjenopptakelseNaturalytelseListe(
rsInntektsmelding
.getGjenopptakelseNaturalytelseListe()
.stream()
.map(ytelse -> {
var mapped = mapperFacade.map(ytelse, RsNaturalytelseDetaljer.class);
mapped.setNaturalytelseType(ytelse.getNaturalytelseType().getJsonValue()); // Don't use the string representation of the enum; use the JSON value corresponding to the enum.
return mapped;
})
.toList()
);

inntektsmelding.setPleiepengerPerioder(rsInntektsmelding.getPleiepengerPerioder().stream()
.map(periode -> mapperFacade.map(periode, RsPeriode.class))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,14 +187,35 @@ void mapJoarkdataEmptyyMedIdent() {
@Test
void mapInntektsmeldingSjekkeEnumFelter() {

var target = mapperFacade.map(populateRsInntektsmelding(), InntektsmeldingRequest.class).getInntekter().getFirst();
assertThat(target.getAarsakTilInnsending(), is(equalTo(AarsakInnsendingKodeListe.NY)));
assertThat(target.getArbeidsforhold().getBeregnetInntekt().getAarsakVedEndring(), is(equalTo("TARIFFENDRING")));
assertThat(target.getArbeidsforhold().getUtsettelseAvForeldrepengerListe().getFirst().getAarsakTilUtsettelse(), is(equalTo("LOVBESTEMT_FERIE")));
assertThat(target.getSykepengerIArbeidsgiverperioden().getBegrunnelseForReduksjonEllerIkkeUtbetalt(), is(equalTo("BETVILER_ARBEIDSUFOERHET")));
assertThat(target.getYtelse(), is(equalTo(YtelseKodeListe.OPPLAERINGSPENGER)));
assertThat(target.getOpphoerAvNaturalytelseListe().getFirst().getNaturalytelseType(), is(equalTo("BEDRIFTSBARNEHAGEPLASS")));
assertThat(target.getGjenopptakelseNaturalytelseListe().getFirst().getNaturalytelseType(), is(equalTo("BEDRIFTSBARNEHAGEPLASS")));
var original = populateRsInntektsmelding();
var mapped = mapperFacade.map(original, InntektsmeldingRequest.class).getInntekter().getFirst();
assertThat(mapped.getAarsakTilInnsending(), is(equalTo(AarsakInnsendingKodeListe.NY)));
assertThat(mapped.getArbeidsforhold().getBeregnetInntekt().getAarsakVedEndring(), is(equalTo("TARIFFENDRING")));
assertThat(mapped.getArbeidsforhold().getUtsettelseAvForeldrepengerListe().getFirst().getAarsakTilUtsettelse(), is(equalTo("LOVBESTEMT_FERIE")));
assertThat(mapped.getSykepengerIArbeidsgiverperioden().getBegrunnelseForReduksjonEllerIkkeUtbetalt(), is(equalTo("BETVILER_ARBEIDSUFOERHET")));
assertThat(mapped.getYtelse(), is(equalTo(YtelseKodeListe.OPPLAERINGSPENGER)));

for (NaturalytelseType originalNaturalytelseType : NaturalytelseType.values()) {
original.getInntekter().getFirst().getGjenopptakelseNaturalytelseListe().getFirst().setNaturalytelseType(originalNaturalytelseType);
original.getInntekter().getFirst().getOpphoerAvNaturalytelseListe().getFirst().setNaturalytelseType(originalNaturalytelseType);
mapped = mapperFacade.map(original, InntektsmeldingRequest.class).getInntekter().getFirst();
var mappedNaturalytelseType = mapped
.getOpphoerAvNaturalytelseListe()
.getFirst()
.getNaturalytelseType();
assertThat(mappedNaturalytelseType, is(equalTo(originalNaturalytelseType.getJsonValue())));
originalNaturalytelseType = original
.getInntekter()
.getFirst()
.getGjenopptakelseNaturalytelseListe()
.getFirst()
.getNaturalytelseType();
mappedNaturalytelseType = mapped
.getGjenopptakelseNaturalytelseListe()
.getFirst()
.getNaturalytelseType();
assertThat(mappedNaturalytelseType, is(equalTo(originalNaturalytelseType.getJsonValue())));
}
}

@Test
Expand Down Expand Up @@ -254,4 +275,5 @@ void mapArbeidsforhold() {
assertThat(target.getUtsettelseAvForeldrepengerListe().getFirst().getPeriode().getFom(), is(equalTo(START_DATO.atStartOfDay())));
assertThat(target.getUtsettelseAvForeldrepengerListe().getFirst().getPeriode().getTom(), is(equalTo(SLUTT_DATO.atStartOfDay())));
}

}

0 comments on commit 19d4b6e

Please sign in to comment.