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..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" @@ -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("1000000.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/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/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..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" @@ -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,8 +14,22 @@ 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); } + + @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)); + } + + @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)); + } }