diff --git "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/psb/v1/PleiepengerSyktBarnValidator.java" "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/psb/v1/PleiepengerSyktBarnValidator.java" index 1f65e9cd..1c16b2f6 100644 --- "a/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/psb/v1/PleiepengerSyktBarnValidator.java" +++ "b/soknad/src/main/java/no/nav/k9/s\303\270knad/ytelse/psb/v1/PleiepengerSyktBarnValidator.java" @@ -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; @@ -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; @@ -77,25 +79,28 @@ private Feil toFeil(ConstraintViolation constraintViolation } private void validerBeredskap(Beredskap beredskap, TidsserieValidator.Perioder perioder, List 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) { + 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) { + 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) { + validerPerioder(nattevåk.getPerioder(), "nattevåk.perioder", feil); finnPerioderUtenfor( toLocalDateTimeline(nattevåk.getPerioder(), "nattevåk.periode", feil), søknadsperiode) .valider("nattevåk", feil); @@ -116,6 +121,7 @@ private void validerArbeidstaker(List 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) @@ -124,6 +130,7 @@ private void validerArbeidstaker(List arbeidstakerList, TidsserieV } private void validerFrilanser(ArbeidstidInfo frilanser, TidsserieValidator.Perioder søknadsperiode, List feil) { + validerPerioder(frilanser.getPerioder(), "arbeistid.frilans.periode", feil); finnIkkeKomplettePerioderOgPerioderUtenfor( toLocalDateTimeline(frilanser.getPerioder(), "arbeistid.frilans.periode", feil), søknadsperiode) @@ -131,6 +138,7 @@ private void validerFrilanser(ArbeidstidInfo frilanser, TidsserieValidator.Perio } private void validerSelvstendigNæringsdrivende(ArbeidstidInfo selvstendigNæringsdrivende, TidsserieValidator.Perioder søknadsperiode, List feil) { + validerPerioder(selvstendigNæringsdrivende.getPerioder(), "arbeidstid.selvstendigNæringsdivende.periode", feil); finnIkkeKomplettePerioderOgPerioderUtenfor( toLocalDateTimeline(selvstendigNæringsdrivende.getPerioder(), "arbeidstid.selvstendigNæringsdivende.periode", feil), søknadsperiode) @@ -138,10 +146,22 @@ private void validerFrilanser(ArbeidstidInfo frilanser, TidsserieValidator.Perio } private void validerTilsynsordning(Tilsynsordning tilsynsordning, TidsserieValidator.Perioder søknadsperiode, List feil) { + validerPerioder(tilsynsordning.getPerioder(), "tilsynsordning.perioder", feil); finnPerioderUtenfor( toLocalDateTimeline(tilsynsordning.getPerioder(), "tilsynsordning.periode", feil), søknadsperiode) .valider("tilsynsordning", feil); } + private void validerPerioder(Map periodeMap, String felt, List 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" )); + } + }); + } + } diff --git "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/psb/PleiepengerBarnS\303\270knadValidatorTest.java" "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/psb/PleiepengerBarnS\303\270knadValidatorTest.java" index 004b0e4b..4265d7eb 100644 --- "a/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/psb/PleiepengerBarnS\303\270knadValidatorTest.java" +++ "b/soknad/src/test/java/no/nav/k9/s\303\270knad/ytelse/psb/PleiepengerBarnS\303\270knadValidatorTest.java" @@ -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; @@ -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; @@ -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() ; + psbYtelse.medLovbestemtFerie(new LovbestemtFerie().medPerioder(periode)); + var feil = verifyHarFeil(psbYtelse); + assertThat(feil.size()).isEqualTo(1); + } + private void feilInneholderFeilkode(List feil, String feilkode) { assertThat(feil .stream()