From 395dd3a0bbc5cfdf5b93c5cb01a79e92d657c93b Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 31 Oct 2024 11:02:00 +0100 Subject: [PATCH 1/3] =?UTF-8?q?UNG=20-=20Legger=20til=20st=C3=B8tte=20for?= =?UTF-8?q?=20inntekt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ytelse/ung/v1/Ungdomsytelse.java" | 17 +++++++++++++++++ .../ytelse/ung/YtelseEksempel.java" | 7 +++++-- .../ytelse/ung/v1/ValideringTest.java" | 3 ++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" index 1abac547..df705b3b 100644 --- "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" +++ "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" @@ -3,6 +3,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotNull; import no.nav.k9.søknad.felles.Feil; import no.nav.k9.søknad.felles.Versjon; @@ -13,6 +15,7 @@ import no.nav.k9.søknad.ytelse.Ytelse; import no.nav.k9.søknad.ytelse.YtelseValidator; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -26,6 +29,11 @@ public class Ungdomsytelse implements Ytelse { @NotNull private List<@NotNull @GyldigPeriode(krevFomDato = true) Periode> søknadsperiode = new ArrayList<>(); + @JsonProperty(value = "inntekt") + @DecimalMin("0.00") + @DecimalMax("10000000.00") + private BigDecimal inntekt; + @Override public Type getType() { return Type.UNGDOMSYTELSE; @@ -84,6 +92,15 @@ public Person getAnnenPart() { return new Periode(fom, tom); } + public BigDecimal getInntekt() { + return inntekt; + } + + public Ungdomsytelse medInntekt(BigDecimal inntekt) { + this.inntekt = Objects.requireNonNull(inntekt, "inntekt"); + return this; + } + public Ungdomsytelse medSøknadsperiode(List søknadsperiodeList) { this.søknadsperiode.addAll(Objects.requireNonNull(søknadsperiodeList, "søknadsperiodeList")); return this; diff --git "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/YtelseEksempel.java" "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/YtelseEksempel.java" index 8acd6e14..9af364b1 100644 --- "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/YtelseEksempel.java" +++ "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/YtelseEksempel.java" @@ -3,11 +3,14 @@ import no.nav.k9.søknad.felles.type.Periode; import no.nav.k9.søknad.ytelse.ung.v1.Ungdomsytelse; +import java.math.BigDecimal; + public class YtelseEksempel { - public static Ungdomsytelse komplettYtelseMedSøknadsperiode(Periode søknadsperiode) { + public static Ungdomsytelse komplettYtelseMedSøknadsperiode(Periode søknadsperiode, BigDecimal inntekt) { return new Ungdomsytelse() - .medSøknadsperiode(søknadsperiode); + .medSøknadsperiode(søknadsperiode) + .medInntekt(inntekt); } } diff --git "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" index 7a61114b..0f9360f2 100644 --- "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" +++ "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" @@ -6,6 +6,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.math.BigDecimal; import java.time.LocalDate; class ValideringTest { @@ -13,7 +14,7 @@ class ValideringTest { @Test void verifiserHentingAvSøknadsperiodeUtenTomDatoIkkeFeiler() { var søknadsperiode = new Periode(LocalDate.now(), null); - var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode); + var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(1000)); ValiderUtil.verifyIngenFeil(SøknadEksempel.søknad(ytelse)); Assertions.assertDoesNotThrow(ytelse::getSøknadsperiode); } From 99678789b2b2b93fe8a5c22b46e53b493cb28c31 Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 31 Oct 2024 12:04:31 +0100 Subject: [PATCH 2/3] Tester innkekt under 0. --- .../ung/v1/UngdomsytelseS\303\270knadValidator.java" | 7 +++++-- .../k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/UngdomsytelseS\303\270knadValidator.java" "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/UngdomsytelseS\303\270knadValidator.java" index aec2e7a2..dceed157 100644 --- "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/UngdomsytelseS\303\270knadValidator.java" +++ "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/UngdomsytelseS\303\270knadValidator.java" @@ -17,10 +17,14 @@ public class UngdomsytelseSøknadValidator extends SøknadValidator { @Override public List valider(Søknad søknad) { - return List.of(); + return validerSøknadsfelter(søknad); } public List valider(Søknad søknad, List gyldigeEndringsperioder) { + return validerSøknadsfelter(søknad); + } + + private List validerSøknadsfelter(Søknad søknad) { var validate = VALIDATOR_FACTORY.getValidator().validate(søknad); List feil = validate.stream() @@ -34,5 +38,4 @@ public List valider(Søknad søknad, List gyldigeEndringsperioder validerFelterPåSøknad(søknad, feil); return feil; } - } diff --git "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" index 0f9360f2..f2be432b 100644 --- "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" +++ "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" @@ -18,4 +18,11 @@ class ValideringTest { ValiderUtil.verifyIngenFeil(SøknadEksempel.søknad(ytelse)); Assertions.assertDoesNotThrow(ytelse::getSøknadsperiode); } + + @Test + void verifiserInntektUnderNullFeiler() { + var søknadsperiode = new Periode(LocalDate.now(), null); + var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(-1000)); + ValiderUtil.verifyHarFeil(SøknadEksempel.søknad(ytelse)); + } } From a0660656cc5c2c9aa699a210cef0bd56c72c2fe5 Mon Sep 17 00:00:00 2001 From: Ramin Esfandiari Date: Thu, 31 Oct 2024 12:06:24 +0100 Subject: [PATCH 3/3] Tester innkekt over tillatt grense. --- .../nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" | 2 +- .../k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" index df705b3b..59b9546a 100644 --- "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" +++ "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/Ungdomsytelse.java" @@ -31,7 +31,7 @@ public class Ungdomsytelse implements Ytelse { @JsonProperty(value = "inntekt") @DecimalMin("0.00") - @DecimalMax("10000000.00") + @DecimalMax("1000000.00") private BigDecimal inntekt; @Override diff --git "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" index f2be432b..b8c20b78 100644 --- "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" +++ "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/ung/v1/ValideringTest.java" @@ -25,4 +25,11 @@ void verifiserInntektUnderNullFeiler() { var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(-1000)); ValiderUtil.verifyHarFeil(SøknadEksempel.søknad(ytelse)); } + + @Test + void verifiserInntektOverGrenseFeiler() { + var søknadsperiode = new Periode(LocalDate.now(), null); + var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(1000001.00)); + ValiderUtil.verifyHarFeil(SøknadEksempel.søknad(ytelse)); + } }