Skip to content

Commit 6b88bdc

Browse files
authored
UNG - Legger til støtte for inntekt (#472)
* UNG - Legger til støtte for inntekt * Tester innkekt under 0. * Tester innkekt over tillatt grense.
1 parent 392d223 commit 6b88bdc

File tree

4 files changed

+43
-5
lines changed

4 files changed

+43
-5
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/ung/v1/Ungdomsytelse.java

+17
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.fasterxml.jackson.annotation.JsonFormat;
44
import com.fasterxml.jackson.annotation.JsonProperty;
55
import jakarta.validation.Valid;
6+
import jakarta.validation.constraints.DecimalMax;
7+
import jakarta.validation.constraints.DecimalMin;
68
import jakarta.validation.constraints.NotNull;
79
import no.nav.k9.søknad.felles.Feil;
810
import no.nav.k9.søknad.felles.Versjon;
@@ -13,6 +15,7 @@
1315
import no.nav.k9.søknad.ytelse.Ytelse;
1416
import no.nav.k9.søknad.ytelse.YtelseValidator;
1517

18+
import java.math.BigDecimal;
1619
import java.time.LocalDate;
1720
import java.util.ArrayList;
1821
import java.util.List;
@@ -26,6 +29,11 @@ public class Ungdomsytelse implements Ytelse {
2629
@NotNull
2730
private List<@NotNull @GyldigPeriode(krevFomDato = true) Periode> søknadsperiode = new ArrayList<>();
2831

32+
@JsonProperty(value = "inntekt")
33+
@DecimalMin("0.00")
34+
@DecimalMax("1000000.00")
35+
private BigDecimal inntekt;
36+
2937
@Override
3038
public Type getType() {
3139
return Type.UNGDOMSYTELSE;
@@ -84,6 +92,15 @@ public Person getAnnenPart() {
8492
return new Periode(fom, tom);
8593
}
8694

95+
public BigDecimal getInntekt() {
96+
return inntekt;
97+
}
98+
99+
public Ungdomsytelse medInntekt(BigDecimal inntekt) {
100+
this.inntekt = Objects.requireNonNull(inntekt, "inntekt");
101+
return this;
102+
}
103+
87104
public Ungdomsytelse medSøknadsperiode(List<Periode> søknadsperiodeList) {
88105
this.søknadsperiode.addAll(Objects.requireNonNull(søknadsperiodeList, "søknadsperiodeList"));
89106
return this;

soknad/src/main/java/no/nav/k9/søknad/ytelse/ung/v1/UngdomsytelseSøknadValidator.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@ public class UngdomsytelseSøknadValidator extends SøknadValidator<Søknad> {
1717

1818
@Override
1919
public List<Feil> valider(Søknad søknad) {
20-
return List.of();
20+
return validerSøknadsfelter(søknad);
2121
}
2222

2323
public List<Feil> valider(Søknad søknad, List<Periode> gyldigeEndringsperioder) {
24+
return validerSøknadsfelter(søknad);
25+
}
26+
27+
private List<Feil> validerSøknadsfelter(Søknad søknad) {
2428
var validate = VALIDATOR_FACTORY.getValidator().validate(søknad);
2529

2630
List<Feil> feil = validate.stream()
@@ -34,5 +38,4 @@ public List<Feil> valider(Søknad søknad, List<Periode> gyldigeEndringsperioder
3438
validerFelterPåSøknad(søknad, feil);
3539
return feil;
3640
}
37-
3841
}

soknad/src/test/java/no/nav/k9/søknad/ytelse/ung/YtelseEksempel.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import no.nav.k9.søknad.felles.type.Periode;
44
import no.nav.k9.søknad.ytelse.ung.v1.Ungdomsytelse;
55

6+
import java.math.BigDecimal;
7+
68
public class YtelseEksempel {
79

8-
public static Ungdomsytelse komplettYtelseMedSøknadsperiode(Periode søknadsperiode) {
10+
public static Ungdomsytelse komplettYtelseMedSøknadsperiode(Periode søknadsperiode, BigDecimal inntekt) {
911

1012
return new Ungdomsytelse()
11-
.medSøknadsperiode(søknadsperiode);
13+
.medSøknadsperiode(søknadsperiode)
14+
.medInntekt(inntekt);
1215
}
1316
}

soknad/src/test/java/no/nav/k9/søknad/ytelse/ung/v1/ValideringTest.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,30 @@
66
import org.junit.jupiter.api.Assertions;
77
import org.junit.jupiter.api.Test;
88

9+
import java.math.BigDecimal;
910
import java.time.LocalDate;
1011

1112
class ValideringTest {
1213

1314
@Test
1415
void verifiserHentingAvSøknadsperiodeUtenTomDatoIkkeFeiler() {
1516
var søknadsperiode = new Periode(LocalDate.now(), null);
16-
var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode);
17+
var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(1000));
1718
ValiderUtil.verifyIngenFeil(SøknadEksempel.søknad(ytelse));
1819
Assertions.assertDoesNotThrow(ytelse::getSøknadsperiode);
1920
}
21+
22+
@Test
23+
void verifiserInntektUnderNullFeiler() {
24+
var søknadsperiode = new Periode(LocalDate.now(), null);
25+
var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(-1000));
26+
ValiderUtil.verifyHarFeil(SøknadEksempel.søknad(ytelse));
27+
}
28+
29+
@Test
30+
void verifiserInntektOverGrenseFeiler() {
31+
var søknadsperiode = new Periode(LocalDate.now(), null);
32+
var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, BigDecimal.valueOf(1000001.00));
33+
ValiderUtil.verifyHarFeil(SøknadEksempel.søknad(ytelse));
34+
}
2035
}

0 commit comments

Comments
 (0)