Skip to content

Commit

Permalink
UNG - Legger til støtte for inntekt (#472)
Browse files Browse the repository at this point in the history
* UNG - Legger til støtte for inntekt

* Tester innkekt under 0.

* Tester innkekt over tillatt grense.
  • Loading branch information
ramrock93 authored Oct 31, 2024
1 parent 392d223 commit 6b88bdc
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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<Periode> søknadsperiodeList) {
this.søknadsperiode.addAll(Objects.requireNonNull(søknadsperiodeList, "søknadsperiodeList"));
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@ public class UngdomsytelseSøknadValidator extends SøknadValidator<Søknad> {

@Override
public List<Feil> valider(Søknad søknad) {
return List.of();
return validerSøknadsfelter(søknad);
}

public List<Feil> valider(Søknad søknad, List<Periode> gyldigeEndringsperioder) {
return validerSøknadsfelter(søknad);
}

private List<Feil> validerSøknadsfelter(Søknad søknad) {
var validate = VALIDATOR_FACTORY.getValidator().validate(søknad);

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

}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,30 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.math.BigDecimal;
import java.time.LocalDate;

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));
}
}

0 comments on commit 6b88bdc

Please sign in to comment.