Skip to content

Commit 3569a40

Browse files
authored
Korrigerer validering livets slutt (#248)
1 parent f643712 commit 3569a40

File tree

2 files changed

+41
-8
lines changed

2 files changed

+41
-8
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/pls/v1/PleiepengerLivetsSluttfaseYtelseValidator.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Map;
99
import java.util.stream.Collectors;
1010

11+
import no.nav.fpsak.tidsserie.LocalDateSegment;
1112
import no.nav.fpsak.tidsserie.LocalDateTimeline;
1213
import no.nav.k9.søknad.felles.Feil;
1314
import no.nav.k9.søknad.felles.opptjening.AnnenAktivitet;
@@ -71,8 +72,11 @@ private void validerOpptjening(PleipengerLivetsSluttfase søknad, List<Feil> fei
7172

7273
private void validerTrekkKravPerioder(PleipengerLivetsSluttfase søknad, List<Feil> feilene) {
7374
LocalDateTimeline<Boolean> trekkKravPerioderTidslinje = lagTidslinjeOgValider(søknad.getTrekkKravPerioder(), "trekkKravPerioder.perioder", feilene);
74-
var søktePerioder = søknad.getArbeidstid().getArbeidstakerList().stream().flatMap(it -> it.getArbeidstidInfo().getPerioder().keySet().stream()).collect(Collectors.toList());
75-
var tidslinjeSøktPeriode = toLocalDateTimeline(søktePerioder);
75+
var søktePerioder = søknad.getArbeidstid().getArbeidstakerList().stream()
76+
.flatMap(it -> it.getArbeidstidInfo().getPerioder().keySet().stream())
77+
.map(it -> new LocalDateSegment<>(it.getFraOgMed(), it.getTilOgMed(), Boolean.TRUE))
78+
.collect(Collectors.toList());
79+
var tidslinjeSøktPeriode = LocalDateTimeline.buildGroupOverlappingSegments(søktePerioder).mapValue(s -> Boolean.TRUE);
7680
feilene.addAll(validerAtIngenPerioderOverlapperMedTrekkKravPerioder(trekkKravPerioderTidslinje, tidslinjeSøktPeriode, "trekkKravPerioder"));
7781
}
7882

soknad/src/test/java/no/nav/k9/søknad/ytelse/pls/v1/YtelseTest.java

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,57 @@
22

33
import static no.nav.k9.søknad.TestUtils.feilInneholder;
44
import static no.nav.k9.søknad.ytelse.pls.v1.ValiderUtil.verifyHarFeil;
5+
import static no.nav.k9.søknad.ytelse.pls.v1.ValiderUtil.verifyIngenFeil;
56

67
import java.time.Duration;
78
import java.time.LocalDate;
89
import java.util.List;
910
import java.util.Map;
1011

11-
import org.junit.jupiter.api.Disabled;
1212
import org.junit.jupiter.api.Test;
1313

1414
import no.nav.k9.søknad.TestUtils;
15-
import no.nav.k9.søknad.felles.Feil;
15+
import no.nav.k9.søknad.felles.type.NorskIdentitetsnummer;
16+
import no.nav.k9.søknad.felles.type.Organisasjonsnummer;
1617
import no.nav.k9.søknad.felles.type.Periode;
17-
import no.nav.k9.søknad.ytelse.psb.SøknadEksempel;
18-
import no.nav.k9.søknad.ytelse.psb.v1.Uttak;
1918
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstaker;
2019
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.Arbeidstid;
2120
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.ArbeidstidInfo;
2221
import no.nav.k9.søknad.ytelse.psb.v1.arbeidstid.ArbeidstidPeriodeInfo;
23-
import no.nav.k9.søknad.ytelse.psb.v1.tilsyn.TilsynPeriodeInfo;
24-
import no.nav.k9.søknad.ytelse.psb.v1.tilsyn.Tilsynsordning;
2522

2623
public class YtelseTest {
2724

25+
@Test
26+
public void skal_tolerere_flere_aktiviteter_i_samme_periode() {
27+
var arbeidstid = new ArbeidstidInfo()
28+
.medPerioder(
29+
Map.of(
30+
new Periode(LocalDate.parse("2021-01-01"), LocalDate.parse("2021-01-05")),
31+
new ArbeidstidPeriodeInfo()
32+
.medFaktiskArbeidTimerPerDag(Duration.ZERO)
33+
.medJobberNormaltTimerPerDag(Duration.ofHours(7))
34+
)
35+
);
36+
37+
var psb = new PleipengerLivetsSluttfase()
38+
.medPleietrengende(new Pleietrengende(NorskIdentitetsnummer.of("12345678911")))
39+
.medArbeidstid(
40+
new Arbeidstid()
41+
.medArbeidstaker(
42+
List.of(
43+
new Arbeidstaker()
44+
.medOrganisasjonsnummer(Organisasjonsnummer.of("123456789"))
45+
.medArbeidstidInfo(arbeidstid),
46+
new Arbeidstaker()
47+
.medOrganisasjonsnummer(Organisasjonsnummer.of("123456788"))
48+
.medArbeidstidInfo(arbeidstid)
49+
)
50+
)
51+
);
52+
53+
verifyIngenFeil(psb);
54+
}
55+
2856
@Test
2957
public void søknadsperiodeInneholderÅpnePerioder() {
3058
var søknadsperiode = new Periode(LocalDate.now(), null);
@@ -42,6 +70,7 @@ public void overlappendePerioderForArbeidstid() {
4270
var feil = verifyHarFeil(psb);
4371
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder", "IllegalArgumentException");
4472
}
73+
4574
@Test
4675
public void invertertPeriodeForArbeidstakerPeriode() {
4776
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().minusMonths(2));

0 commit comments

Comments
 (0)