Skip to content

Commit 9acfba2

Browse files
tar bort validering av arbeidstid faktisk er større enn nomral, fikser i flere tester (#214)
1 parent a09bfb1 commit 9acfba2

File tree

6 files changed

+60
-51
lines changed

6 files changed

+60
-51
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/PleiepengerSyktBarnYtelseValidator.java

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -62,39 +62,39 @@ List<Feil> validerMedGyldigEndringsperodeHvisDenFinnes(Ytelse ytelse,
6262
return feilene;
6363
}
6464

65-
private List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
66-
List<Periode> gyldigeEndringsperioder,
67-
boolean brukValideringMedUtledetEndringsperiode) {
65+
List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
66+
List<Periode> gyldigeEndringsperioder,
67+
boolean brukValideringMedUtledetEndringsperiode) {
6868
final List<Feil> feilene = new ArrayList<Feil>();
6969

7070
feilene.addAll(validerLovligEndring(psb, gyldigeEndringsperioder, brukValideringMedUtledetEndringsperiode));
7171
feilene.addAll(validerPerioderErLukketOgGyldig(psb.getBosteder().getPerioder(), "bosteder.perioder"));
7272
feilene.addAll(validerPerioderErLukketOgGyldig(psb.getUtenlandsopphold().getPerioder(), "utenlandsopphold.perioder"));
7373

74-
final LocalDateTimeline<Boolean> søknadsperiodeTidslinje = lagTidslinjeOgValider(psb.getSøknadsperiodeList(), "søknadsperiode.perioder");
74+
final LocalDateTimeline<Boolean> søknadsperiodeTidslinje = lagTidslinjeOgValider(psb.getSøknadsperiodeList(), "søknadsperiode.perioder", feilene);
7575
final LocalDateTimeline<Boolean> intervalForEndringTidslinje;
7676

7777
if (brukValideringMedUtledetEndringsperiode) {
78-
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder");
78+
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder", feilene);
7979
intervalForEndringTidslinje = søknadsperiodeTidslinje.union(gyldigEndringsperiodeTidslinje, StandardCombinators::coalesceLeftHandSide);
8080
} else {
81-
final LocalDateTimeline<Boolean> endringsperiodeTidslinje = lagTidslinjeOgValider(psb.getEndringsperiode(), "endringsperiode.perioder");
81+
final LocalDateTimeline<Boolean> endringsperiodeTidslinje = lagTidslinjeOgValider(psb.getEndringsperiode(), "endringsperiode.perioder", feilene);
8282
intervalForEndringTidslinje = søknadsperiodeTidslinje.union(endringsperiodeTidslinje, StandardCombinators::coalesceLeftHandSide);
8383
}
8484

85-
final LocalDateTimeline<Boolean> trekkKravPerioderTidslinje = lagTidslinjeOgValider(psb.getTrekkKravPerioder(), "trekkKravPerioder.perioder");
85+
final LocalDateTimeline<Boolean> trekkKravPerioderTidslinje = lagTidslinjeOgValider(psb.getTrekkKravPerioder(), "trekkKravPerioder.perioder", feilene);
8686

8787
if (brukValideringMedUtledetEndringsperiode) {
8888
feilene.addAll(validerAtIngenPerioderOverlapperMedTrekkKravPerioder(trekkKravPerioderTidslinje, søknadsperiodeTidslinje, "trekkKravPerioder"));
8989
}
9090

9191
for (var ytelsePeriode : PerioderMedEndringUtil.getAllePerioderSomMåVæreInnenforSøknadsperiode(psb)) {
92-
var ytelsePeriodeTidsserie = lagTidslinjeOgValider(ytelsePeriode.getPeriodeMap(), ytelsePeriode.getFelt() + ".perioder");
92+
var ytelsePeriodeTidsserie = lagTidslinjeOgValider(ytelsePeriode.getPeriodeMap(), ytelsePeriode.getFelt() + ".perioder", feilene);
9393
feilene.addAll(validerAtYtelsePerioderErInnenforIntervalForEndring(intervalForEndringTidslinje, ytelsePeriodeTidsserie, ytelsePeriode.getFelt() + ".perioder"));
9494
feilene.addAll(validerAtIngenPerioderOverlapperMedTrekkKravPerioder(trekkKravPerioderTidslinje, ytelsePeriodeTidsserie, ytelsePeriode.getFelt() + ".perioder"));
9595
}
9696

97-
feilene.addAll(validerAtYtelsePeriodenErKomplettMedSøknad(søknadsperiodeTidslinje, psb.getUttak().getPerioder(), "uttak"));
97+
validerAtYtelsePeriodenErKomplettMedSøknad(søknadsperiodeTidslinje, psb.getUttak().getPerioder(), "uttak", feilene);
9898

9999
return feilene;
100100
}
@@ -120,13 +120,14 @@ private List<Feil> validerAtYtelsePerioderErInnenforIntervalForEndring(LocalDate
120120
.collect(Collectors.toCollection(ArrayList::new));
121121
}
122122

123-
private List<Feil> validerAtYtelsePeriodenErKomplettMedSøknad(LocalDateTimeline<Boolean> søknadsperiode,
123+
private void validerAtYtelsePeriodenErKomplettMedSøknad(LocalDateTimeline<Boolean> søknadsperiode,
124124
Map<Periode, ?> ytelsePeriode,
125-
String felt) {
126-
return tilPeriodeList(søknadsperiode.disjoint(lagTidslinjeOgValider(new ArrayList<>(ytelsePeriode.keySet()), felt))).stream()
125+
String felt,
126+
List<Feil> feil) {
127+
feil.addAll( tilPeriodeList(søknadsperiode.disjoint(lagTidslinjeOgValider(new ArrayList<>(ytelsePeriode.keySet()), felt, feil))).stream()
127128
.filter(this::periodeInneholderDagerSomIkkeErHelg)
128129
.map(p -> toFeil(p, felt, "ikkeKomplettPeriode", "Periodene er ikke komplett, periode som mangler er: "))
129-
.collect(Collectors.toCollection(ArrayList::new));
130+
.collect(Collectors.toCollection(ArrayList::new)));
130131
}
131132

132133
private List<Feil> validerAtIngenPerioderOverlapperMedTrekkKravPerioder(LocalDateTimeline<Boolean> trekkKravPerioder,
@@ -152,38 +153,35 @@ private Feil toFeil(Periode periode, String felt, String feilkode, String feilme
152153
return lagFeil(felt, feilkode, feilmelding + periode.toString());
153154
}
154155

155-
private Feil toFeil(ConstraintViolation<PleiepengerSyktBarn> constraintViolation) {
156-
return lagFeil(
157-
constraintViolation.getPropertyPath().toString(),
158-
PÅKREVD,
159-
constraintViolation.getMessage());
160-
}
161-
162156
private Feil lagFeil(String felt, String feilkode, String feilmelding) {
163157
return new Feil(YTELSE_FELT + felt, feilkode, feilmelding);
164158
}
165159

166-
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt) throws ValideringsAvbrytendeFeilException {
167-
var feil = validerPerioderErLukketOgGyldig(periodeList, felt);
168-
if (!feil.isEmpty()) {
160+
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt, List<Feil> feil) throws ValideringsAvbrytendeFeilException {
161+
var nyFeil = validerPerioderErLukketOgGyldig(periodeList, felt);
162+
if (!nyFeil.isEmpty()) {
163+
feil.addAll(nyFeil);
169164
throw new ValideringsAvbrytendeFeilException(feil);
170165
}
171166
try {
172167
return toLocalDateTimeline(periodeList);
173168
} catch (IllegalArgumentException e) {
174-
throw new ValideringsAvbrytendeFeilException(List.of(lagFeil(felt, "IllegalArgumentException", e.getMessage())));
169+
feil.add(lagFeil(felt, "IllegalArgumentException", e.getMessage()));
170+
throw new ValideringsAvbrytendeFeilException(feil);
175171
}
176172
}
177173

178-
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(Map<Periode, ? > periodeMap, String felt) throws ValideringsAvbrytendeFeilException {
179-
var feil = validerPerioderErLukketOgGyldig(periodeMap, felt);
180-
if (!feil.isEmpty()) {
174+
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(Map<Periode, ? > periodeMap, String felt, List<Feil> feil) throws ValideringsAvbrytendeFeilException {
175+
var nyFeil = validerPerioderErLukketOgGyldig(periodeMap, felt);
176+
if (!nyFeil.isEmpty()) {
177+
feil.addAll(nyFeil);
181178
throw new ValideringsAvbrytendeFeilException(feil);
182179
}
183180
try {
184181
return toLocalDateTimeline(new ArrayList<>(periodeMap.keySet()));
185182
} catch (IllegalArgumentException e) {
186-
throw new ValideringsAvbrytendeFeilException(List.of(lagFeil(felt, "IllegalArgumentException", e.getMessage())));
183+
feil.add(lagFeil(felt, "IllegalArgumentException", e.getMessage()));
184+
throw new ValideringsAvbrytendeFeilException(feil);
187185
}
188186
}
189187

@@ -222,7 +220,7 @@ private void validerPerioderIkkeErInvertert(Periode periode, String felt, List<F
222220
}
223221
}
224222

225-
private static class ValideringsAvbrytendeFeilException extends RuntimeException {
223+
static class ValideringsAvbrytendeFeilException extends RuntimeException {
226224

227225
private final List<Feil> feilList;
228226

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/arbeidstid/ArbeidstidPeriodeInfo.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,4 @@ public ArbeidstidPeriodeInfo medJobberNormaltTimerPerDag(Duration jobberNormaltT
6060
this.jobberNormaltTimerPerDag = jobberNormaltTimerPerDag;
6161
return this;
6262
}
63-
64-
@AssertTrue(message="[ugyldigArbeidstid] Faktisk arbeid er større enn jobber normalt")
65-
private boolean isValid() {
66-
if (jobberNormaltTimerPerDag == null || faktiskArbeidTimerPerDag == null) {
67-
return true;
68-
}
69-
return jobberNormaltTimerPerDag.compareTo(faktiskArbeidTimerPerDag) >= 0;
70-
}
7163
}

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/YtelseEksempel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public static PleiepengerSyktBarn minimumYtelse(Periode... perioder) {
142142
/*
143143
Endring
144144
*/
145-
private static PleiepengerSyktBarn lagEndringssøknad() {
145+
public static PleiepengerSyktBarn lagEndringssøknad() {
146146
return new PleiepengerSyktBarn()
147147
.medBarn(new Barn(NorskIdentitetsnummer.of("11111111111"), null));
148148
}

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/v1/EndringTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,20 @@ class EndringTest {
3434

3535
var psb = YtelseEksempel.komplettEndringssøknad(endringsperiode);
3636

37-
//TODO ta bort nå endringsperiode funker
38-
psb.medEndringsperiode(endringsperiode);
3937
verifyIngenFeil(psb, List.of(gyldigEndringsInterval));
4038
assertEndringsperioderIJson(psb);
4139
}
4240

41+
@Test
42+
public void endringssøknadMedBareTilsyn() {
43+
var gyldigIntervalForEndring = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(4));
44+
var endringsperiode = new Periode(LocalDate.now().plusDays(2), LocalDate.now().plusWeeks(2));
45+
46+
var psb = YtelseEksempel.lagEndringssøknad()
47+
.medTilsynsordning(YtelseEksempel.lagTilsynsordning(endringsperiode));
48+
verifyIngenFeil(psb, List.of(gyldigIntervalForEndring));
49+
}
50+
4351
@Test
4452
public void endringssøknadMedSøknadsperioderUtenFeil() {
4553
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(2));

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/v1/SøknadTest.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import static no.nav.k9.søknad.ytelse.psb.YtelseEksempel.leggPåKomplettEndringsøknad;
1313
import static no.nav.k9.søknad.ytelse.psb.v1.ValiderUtil.verifyHarFeil;
1414
import static no.nav.k9.søknad.ytelse.psb.v1.ValiderUtil.verifyIngenFeil;
15+
import static org.assertj.core.api.Assertions.assertThat;
16+
import static org.junit.jupiter.api.Assertions.assertThrows;
1517

1618
import java.time.LocalDate;
1719
import java.util.List;
@@ -89,31 +91,41 @@ public void bostederKanIkkeHaInvertertePerioder() {
8991
Søknad.SerDes.serialize(søknad);
9092
}
9193

92-
@Disabled("Trenger avklaring om dette er ønsket")
9394
@Test
94-
public void utenlandsoppholdKanIkkeVæreUtenforSøknadsperiode() {
95+
public void utenlandsoppholdKanVæreUtenforSøknadsperiode() {
9596
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
9697
var bostedperiode = new Periode(LocalDate.now().minusMonths(2), søknadsperiode.getTilOgMed());
9798

9899
var søknad = SøknadEksempel.komplettSøknad(søknadsperiode);
99100
((PleiepengerSyktBarn) søknad.getYtelse()).medUtenlandsopphold(lagUtenlandsopphold(bostedperiode));
100101

101-
var feil = verifyHarFeil(søknad);
102-
feilInneholder(feil, "ytelse.utenlandsopphold.perioder", "ugyldigPeriode");
102+
var feil = verifyIngenFeil(søknad);
103103
}
104104

105105
@Test
106106
public void alleFelterISøknadInvertertPeriode() {
107107
var søknadsperiode = new Periode(LocalDate.now().plusWeeks(2), LocalDate.now().minusWeeks(2));
108108
var søknad = SøknadEksempel.komplettSøknad(søknadsperiode);
109-
((PleiepengerSyktBarn)søknad.getYtelse()).medEndringsperiode(søknadsperiode);
110-
//(((PleiepengerSyktBarn)søknad.getYtelse()).addTrekkKravPeriode(new Periode(LocalDate.now().minusMonths(2), LocalDate.now().minusMonths(3)));
109+
111110

112111
var feil = verifyHarFeil(søknad, List.of(søknadsperiode));
112+
113113
feilInneholder(feil, "ytelse.søknadsperiode.perioder" + TestUtils.periodeString(0), "ugyldigPeriode", "Fra og med (FOM) må være før eller lik til og med (TOM).");
114-
//feilInneholder(feil, "ytelse.bosteder.perioder" + TestUtils.periodeString(søknadsperiode), "ugyldigPeriode", "Fra og med (FOM) må være før eller lik til og med (TOM).");
115-
//feilInneholder(feil, "ytelse.utenlandsopphold.perioder" + TestUtils.periodeString(søknadsperiode), "ugyldigPeriode", "Fra og med (FOM) må være før eller lik til og med (TOM).");
116-
//assertThat(feil).size().isEqualTo(3);
114+
feilInneholder(feil, "ytelse.bosteder.perioder" + TestUtils.periodeString(søknadsperiode), "ugyldigPeriode", "Fra og med (FOM) må være før eller lik til og med (TOM).");
115+
feilInneholder(feil, "ytelse.utenlandsopphold.perioder" + TestUtils.periodeString(søknadsperiode), "ugyldigPeriode", "Fra og med (FOM) må være før eller lik til og med (TOM).");
116+
assertThat(feil).size().isEqualTo(3);
117+
}
118+
119+
@Test
120+
public void alleFelterISøknadInvertertPeriodeKasterException() {
121+
PleiepengerSyktBarnYtelseValidator pleiepengerSyktBarnYtelseValidator = new PleiepengerSyktBarnYtelseValidator();
122+
var søknadsperiode = new Periode(LocalDate.now().plusWeeks(2), LocalDate.now().minusWeeks(2));
123+
var søknad = SøknadEksempel.komplettSøknad(søknadsperiode);
124+
125+
assertThrows(PleiepengerSyktBarnYtelseValidator.ValideringsAvbrytendeFeilException.class, () -> {
126+
pleiepengerSyktBarnYtelseValidator.validerOgLeggTilFeilene(søknad.getYtelse(), List.of(), true);
127+
}
128+
);
117129
}
118130

119131
@Test

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,7 @@ public void invertertPeriodeForArbeidstakerPeriode() {
296296
var arbeidstaker = YtelseEksempel.lagArbeidstaker(new ArbeidstidPeriodeInfo(jobberNormalt, jobberFaktisk), søknadsperiode);
297297

298298
((PleiepengerSyktBarn) søknad.getYtelse()).medArbeidstid(new Arbeidstid().medArbeidstaker(List.of(arbeidstaker)));
299-
var feil = verifyHarFeil(søknad);
300-
feilInneholder(feil, "ugyldigArbeidstid");
299+
var feil = verifyIngenFeil(søknad);
301300
}
302301

303302
}

0 commit comments

Comments
 (0)