Skip to content

Commit

Permalink
forsøk på å validere nullpointer i perioder map
Browse files Browse the repository at this point in the history
  • Loading branch information
christofferlohne committed Jun 27, 2021
1 parent 403d243 commit a4e85a0
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static no.nav.k9.søknad.TidsserieValidator.finnPerioderUtenfor;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import javax.validation.ConstraintViolation;
Expand All @@ -13,6 +14,7 @@

import no.nav.k9.søknad.TidsserieValidator;
import no.nav.k9.søknad.felles.Feil;
import no.nav.k9.søknad.felles.type.Periode;
import no.nav.k9.søknad.ytelse.Ytelse;
import no.nav.k9.søknad.ytelse.YtelseValidator;
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstaker;
Expand Down Expand Up @@ -77,25 +79,28 @@ private Feil toFeil(ConstraintViolation<PleiepengerSyktBarn> constraintViolation
}

private void validerBeredskap(Beredskap beredskap, TidsserieValidator.Perioder perioder, List<Feil> feil) {
validerPerioder(beredskap.getPerioder(), "beredskap.perioder", feil);
finnPerioderUtenfor(
toLocalDateTimeline(beredskap.getPerioder(), "beredskap.periode", feil), perioder)
.valider("beredskap", feil);

}

private void validerUttak(Uttak uttak, TidsserieValidator.Perioder perioder, List<Feil> feil) {
validerPerioder(uttak.getPerioder(), "uttak.perioder", feil);
finnIkkeKomplettePerioderOgPerioderUtenfor(
toLocalDateTimeline(uttak.getPerioder(), "uttak.periode", feil), perioder)
.valider("uttak", feil);
}

private void validerLovbestemtFerie(LovbestemtFerie lovbestemtFerie, TidsserieValidator.Perioder søknadsperiode, List<Feil> feil) {
validerPerioder(lovbestemtFerie.getPerioder(), "lovbestemtFerie.perioder", feil);
finnPerioderUtenfor(
toLocalDateTimeline(lovbestemtFerie.getPerioder(), "lovbestemtFerie.periode", feil),
søknadsperiode).valider("lovbestemtFerie", feil);
}

private void validerNattevåk(Nattevåk nattevåk, TidsserieValidator.Perioder søknadsperiode, List<Feil> feil) {
validerPerioder(nattevåk.getPerioder(), "nattevåk.perioder", feil);
finnPerioderUtenfor(
toLocalDateTimeline(nattevåk.getPerioder(), "nattevåk.periode", feil), søknadsperiode)
.valider("nattevåk", feil);
Expand All @@ -116,6 +121,7 @@ private void validerArbeidstaker(List<Arbeidstaker> arbeidstakerList, TidsserieV
return;
}
for (Arbeidstaker arbeidstaker : arbeidstakerList ) {
validerPerioder(arbeidstaker.getArbeidstidInfo().getPerioder(), "arbeidstid.arbeidstaker.periode", feil);
arbeidstaker.valider("arbeidstid.arbeidstaker", feil);
finnIkkeKomplettePerioderOgPerioderUtenfor(
toLocalDateTimeline(arbeidstaker.getArbeidstidInfo().getPerioder(), "arbeidstid.arbeidstaker.periode", feil), søknadsperiode)
Expand All @@ -124,24 +130,38 @@ private void validerArbeidstaker(List<Arbeidstaker> arbeidstakerList, TidsserieV
}

private void validerFrilanser(ArbeidstidInfo frilanser, TidsserieValidator.Perioder søknadsperiode, List<Feil> feil) {
validerPerioder(frilanser.getPerioder(), "arbeistid.frilans.periode", feil);
finnIkkeKomplettePerioderOgPerioderUtenfor(
toLocalDateTimeline(frilanser.getPerioder(), "arbeistid.frilans.periode", feil),
søknadsperiode)
.valider("arbeidstid.frilanser", feil);
}

private void validerSelvstendigNæringsdrivende(ArbeidstidInfo selvstendigNæringsdrivende, TidsserieValidator.Perioder søknadsperiode, List<Feil> feil) {
validerPerioder(selvstendigNæringsdrivende.getPerioder(), "arbeidstid.selvstendigNæringsdivende.periode", feil);
finnIkkeKomplettePerioderOgPerioderUtenfor(
toLocalDateTimeline(selvstendigNæringsdrivende.getPerioder(), "arbeidstid.selvstendigNæringsdivende.periode", feil),
søknadsperiode)
.valider("arbeidstid.selvstendigNæringsdrivende", feil);
}

private void validerTilsynsordning(Tilsynsordning tilsynsordning, TidsserieValidator.Perioder søknadsperiode, List<Feil> feil) {
validerPerioder(tilsynsordning.getPerioder(), "tilsynsordning.perioder", feil);
finnPerioderUtenfor(
toLocalDateTimeline(tilsynsordning.getPerioder(), "tilsynsordning.periode", feil),
søknadsperiode)
.valider("tilsynsordning", feil);
}

private void validerPerioder(Map<Periode, ?> periodeMap, String felt, List<Feil> feil) {
periodeMap.forEach((periode, o) -> {
if (periode == null) {
feil.add(new Feil(felt, "NullPointerException", "Periode kan ikke være null" ));
}
if ( o ==null) {
feil.add(new Feil(felt, "NullPointerException", "PeriodeInfo kan ikke være null" ));
}
});
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;

import org.junit.jupiter.api.Test;
Expand All @@ -22,6 +23,7 @@
import no.nav.k9.søknad.felles.type.Periode;
import no.nav.k9.søknad.felles.type.VirksomhetType;
import no.nav.k9.søknad.ytelse.psb.v1.Beredskap;
import no.nav.k9.søknad.ytelse.psb.v1.LovbestemtFerie;
import no.nav.k9.søknad.ytelse.psb.v1.Nattevåk;
import no.nav.k9.søknad.ytelse.psb.v1.Omsorg;
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
Expand Down Expand Up @@ -367,6 +369,16 @@ public void feilIUttaksperidodeFomTom() {
assertThat(feil.size()).isEqualTo(2);
}

@Test
public void nullpointerVedObjektIPeriodeMap() {
var søknadsperiode = new Periode(LocalDate.now().minusWeeks(3), LocalDate.now().plusWeeks(2));
var psbYtelse = TestUtils.minimumSøknadPleiepengerSyktBarn(søknadsperiode);
var periode = new TreeMap<Periode, LovbestemtFerie.LovbestemtFeriePeriodeInfo>() ;
psbYtelse.medLovbestemtFerie(new LovbestemtFerie().medPerioder(periode));
var feil = verifyHarFeil(psbYtelse);
assertThat(feil.size()).isEqualTo(1);
}

private void feilInneholderFeilkode(List<Feil> feil, String feilkode) {
assertThat(feil
.stream()
Expand Down

0 comments on commit a4e85a0

Please sign in to comment.