Skip to content

Commit 666cad9

Browse files
authored
Støtter validering av eksisterende perioder med helg i OMP. (#318)
* Støtter validering av eksisterende perioder med helg i OMP. * Støtter validering av eksisterende perioder med helg i OMP. * Omformulerer navn på tester. * Støtter validering mot gyldigePerioder for korringering IM.
1 parent b23bfe0 commit 666cad9

File tree

3 files changed

+61
-11
lines changed

3 files changed

+61
-11
lines changed

soknad/src/main/java/no/nav/k9/søknad/TidsserieUtils.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package no.nav.k9.søknad;
22

33
import java.util.List;
4-
import java.util.stream.Collectors;
5-
64
import no.nav.fpsak.tidsserie.LocalDateSegment;
75
import no.nav.fpsak.tidsserie.LocalDateTimeline;
86
import no.nav.k9.søknad.felles.type.Periode;
@@ -14,14 +12,14 @@ private TidsserieUtils() {
1412
public static List<Periode> tilPeriodeList(LocalDateTimeline<?> t) {
1513
return t.stream()
1614
.map(l -> new Periode(l.getFom(), l.getTom()))
17-
.collect(Collectors.toList());
15+
.toList();
1816
}
1917

2018
public static LocalDateTimeline<Boolean> toLocalDateTimeline(List<Periode> perioder) {
2119
return new LocalDateTimeline<>(perioder
2220
.stream()
2321
.map(periode -> new LocalDateSegment<>(periode.getFraOgMed(), periode.getTilOgMed(), true))
24-
.collect(Collectors.toList()))
22+
.toList())
2523
.compress();
2624
}
2725

soknad/src/main/java/no/nav/k9/søknad/ytelse/omsorgspenger/v1/OmsorgspengerUtbetalingValidator.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,24 @@ List<Feil> validerMedGyldigEndringsperodeHvisDenFinnes(Ytelse ytelse, List<Perio
7474
}
7575

7676
List<Feil> validerMotGyldigePerioder(OmsorgspengerUtbetaling omp, List<Periode> gyldigeEndringsperioder) {
77-
final LocalDateTimeline<Boolean> søknadsperiodeTidslinje = lagTidslinjeOgValider(List.of(omp.getSøknadsperiode()), "søknadsperiode.perioder");
78-
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder");
77+
if (omp.getFraværsperioder() != null && !omp.getFraværsperioder().isEmpty()) {
7978

80-
return validerAtYtelsePerioderErInnenforIntervalForEndring(søknadsperiodeTidslinje, gyldigEndringsperiodeTidslinje, "søknadsperiode.perioder");
79+
List<Periode> fraværsperioder = omp.getFraværsperioder().stream().map(FraværPeriode::getPeriode).toList();
80+
final LocalDateTimeline<Boolean> fraværsperioderTidslinje = lagTidslinjeOgValider(fraværsperioder, "fraværsperioder.perioder");
81+
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder");
82+
83+
return validerAtYtelsePerioderErInnenforIntervalForEndring(fraværsperioderTidslinje, gyldigEndringsperiodeTidslinje, "fraværsperioder.perioder");
84+
85+
} else if (omp.getFraværsperioderKorrigeringIm() != null && !omp.getFraværsperioderKorrigeringIm().isEmpty()) {
86+
87+
List<Periode> fraværsperioderKorrigeringIm = omp.getFraværsperioderKorrigeringIm().stream().map(FraværPeriode::getPeriode).toList();
88+
final LocalDateTimeline<Boolean> fraværsperioderKorrigeringImTidslinje = lagTidslinjeOgValider(fraværsperioderKorrigeringIm, "fraværsperioderKorrigeringIm.perioder");
89+
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder");
90+
91+
return validerAtYtelsePerioderErInnenforIntervalForEndring(fraværsperioderKorrigeringImTidslinje, gyldigEndringsperiodeTidslinje, "fraværsperioderKorrigeringIm.perioder");
92+
}
93+
94+
else return List.of();
8195
}
8296

8397
private List<Feil> validerPerioderErLukketOgGyldig(List<Periode> periodeList, String felt) {

soknad/src/test/java/no/nav/k9/søknad/ytelse/omsorgspenger/v1/OmsorgspengerUtbetalingValidatorTest.java

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,44 @@ void korrigering_av_perioder_innenfor_eksisterende_perioder_skal_ikke_feile() {
303303
assertThat(feil).hasSize(0);
304304
}
305305

306+
@Test
307+
void korrigering_av_flere_perioder_innenfor_flere_eksisterende_perioder_skal_ikke_feile() {
308+
List<Periode> eksisterendePerioder = List.of(
309+
new Periode(LocalDate.parse("2022-08-01"), LocalDate.parse("2022-08-05")),
310+
new Periode(LocalDate.parse("2022-08-08"), LocalDate.parse("2022-08-12"))
311+
);
312+
313+
var endringsperiode1 = new Periode(LocalDate.parse("2022-08-02"), LocalDate.parse("2022-08-03"));
314+
var endringsperiode2 = new Periode(LocalDate.parse("2022-08-09"), LocalDate.parse("2022-08-10"));
315+
OmsorgspengerUtbetaling korrigering = byggOmsorgspengerUtbetalingSøknadBruker(
316+
lagSøknadsperiode(orgnr1, endringsperiode1, null),
317+
lagSøknadsperiode(orgnr1, endringsperiode2, null)
318+
);
319+
320+
321+
List<Feil> feil = lagSøknadOgValider(korrigering, eksisterendePerioder);
322+
323+
assertThat(feil).hasSize(0);
324+
}
325+
326+
@Test
327+
void korrigering_av_perioder_innenfor_eksisterende_periode_som_strekker_over_helg_skal_ikke_feile() {
328+
List<Periode> eksisterendePerioder = List.of(
329+
new Periode(LocalDate.parse("2022-08-01"), LocalDate.parse("2022-08-12"))
330+
);
331+
332+
var endringsperiode1 = new Periode(LocalDate.parse("2022-08-02"), LocalDate.parse("2022-08-03"));
333+
var endringsperiode2 = new Periode(LocalDate.parse("2022-08-09"), LocalDate.parse("2022-08-10"));
334+
OmsorgspengerUtbetaling korrigering = byggOmsorgspengerUtbetalingSøknadBruker(
335+
lagSøknadsperiode(orgnr1, endringsperiode1, null),
336+
lagSøknadsperiode(orgnr1, endringsperiode2, null)
337+
);
338+
339+
340+
List<Feil> feil = lagSøknadOgValider(korrigering, eksisterendePerioder);
341+
342+
assertThat(feil).hasSize(0);
343+
}
306344

307345
@Test
308346
void korrigering_av_perioder_som_overlapper_eksisterende_perioder_skal_feile() {
@@ -321,7 +359,7 @@ void korrigering_av_perioder_som_overlapper_eksisterende_perioder_skal_feile() {
321359
assertThat(feil).hasSize(1);
322360
feilInneholder(
323361
feil,
324-
"ytelse.søknadsperiode.perioder",
362+
"ytelse.fraværsperioder.perioder",
325363
"ugyldigPeriode",
326364
"Perioden er utenfor gyldig interval. Gyldig interval: ([[2021-09-06, 2021-09-08]]), Ugyldig periode: 2021-09-09/2021-09-10"
327365
);
@@ -345,7 +383,7 @@ void korrigering_av_perioder_som_er_utenfor_eksisterende_perioder_skal_feile() {
345383
assertThat(feil).hasSize(1);
346384
feilInneholder(
347385
feil,
348-
"ytelse.søknadsperiode.perioder",
386+
"ytelse.fraværsperioder.perioder",
349387
"ugyldigPeriode",
350388
"Perioden er utenfor gyldig interval. Gyldig interval: ([[2021-09-06, 2021-09-08]]), Ugyldig periode: 2021-09-09/2021-09-10"
351389
);
@@ -368,7 +406,7 @@ void korrigering_av_perioder_som_er_utenfor_eksisterende_perioder_skal_feile() {
368406
assertThat(feil).hasSize(1);
369407
feilInneholder(
370408
feil,
371-
"ytelse.søknadsperiode.perioder",
409+
"ytelse.fraværsperioder.perioder",
372410
"ugyldigPeriode",
373411
"Perioden er utenfor gyldig interval. Gyldig interval: ([[2021-09-08, 2021-09-10]]), Ugyldig periode: 2021-09-06/2021-09-07"
374412
);
@@ -391,7 +429,7 @@ void korrigering_av_perioder_som_er_utenfor_eksisterende_perioder_skal_feile() {
391429
assertThat(feil).hasSize(1);
392430
feilInneholder(
393431
feil,
394-
"ytelse.søknadsperiode.perioder",
432+
"ytelse.fraværsperioder.perioder",
395433
"ugyldigPeriode",
396434
"Perioden er utenfor gyldig interval. Gyldig interval: ([[2021-09-08, 2021-09-10]]), Ugyldig periode: 2021-09-06/2021-09-07"
397435
);

0 commit comments

Comments
 (0)