Skip to content

Commit 2ff42ce

Browse files
fikset på feltnavn for feilmeding arbeidstid.arbeidstakerList og map … (#206)
* fikset på feltnavn for feilmeding arbeidstid.arbeidstakerList og map indeks * lagt på todo for rydding
1 parent 5af526e commit 2ff42ce

File tree

6 files changed

+48
-16
lines changed

6 files changed

+48
-16
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public static List<PerioderMedEndring> getArbeidstidPerioder(Arbeidstid arbeidst
4343
if (arbeidstid.getArbeidstakerList() != null && !arbeidstid.getArbeidstakerList().isEmpty()) {
4444
int i = 0;
4545
for (var at : arbeidstid.getArbeidstakerList()) {
46-
listen.add(new PerioderMedEndring().medPerioder("arbeidstid.arbeidstaker[" + i + "]", at.getArbeidstidInfo().getPerioder()));
46+
listen.add(new PerioderMedEndring().medPerioder("arbeidstid.arbeidstakerList[" + i + "]", at.getArbeidstidInfo().getPerioder()));
4747
i++;
4848
}
4949
}

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

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
8989
}
9090

9191
for (var ytelsePeriode : PerioderMedEndringUtil.getAllePerioderSomMåVæreInnenforSøknadsperiode(psb)) {
92-
var ytelsePeriodeTidsserie = lagTidslinjeOgValider(ytelsePeriode.getPeriodeList(), ytelsePeriode.getFelt() + ".perioder");
92+
var ytelsePeriodeTidsserie = lagTidslinjeOgValiderForYtelseperioder(ytelsePeriode.getPeriodeList(), ytelsePeriode.getFelt() + ".perioder");
9393
feilene.addAll(validerAtYtelsePerioderErInnenforIntervalForEndring(intervalForEndringTidslinje, ytelsePeriodeTidsserie, ytelsePeriode.getFelt() + ".perioder"));
9494
feilene.addAll(validerAtIngenPerioderOverlapperMedTrekkKravPerioder(trekkKravPerioderTidslinje, ytelsePeriodeTidsserie, ytelsePeriode.getFelt() + ".perioder"));
9595
}
@@ -116,7 +116,7 @@ private List<Feil> validerAtYtelsePerioderErInnenforIntervalForEndring(LocalDate
116116
String felt) {
117117
return tilPeriodeList(
118118
testTidsserie.disjoint(gyldigInterval)).stream()
119-
.map(p -> toFeil(p, felt, "ugyldigPeriode", "Perioden er utenfor gyldig interval(" + gyldigInterval.toString() + ") : "))
119+
.map(p -> toFeil(p, felt, "ugyldigPeriode", "Perioden er utenfor gyldig interval. Gyldig interva: (" + gyldigInterval.toString() + "), Periode: "))
120120
.collect(Collectors.toCollection(ArrayList::new));
121121
}
122122

@@ -163,8 +163,7 @@ private Feil lagFeil(String felt, String feilkode, String feilmelding) {
163163
return new Feil(YTELSE_FELT + felt, feilkode, feilmelding);
164164
}
165165

166-
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt)
167-
throws ValideringsAvbrytendeFeilException {
166+
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt) throws ValideringsAvbrytendeFeilException {
168167
var feil = validerPerioderErLukketOgGyldig(periodeList, felt);
169168
if (!feil.isEmpty()) {
170169
throw new ValideringsAvbrytendeFeilException(feil);
@@ -176,6 +175,27 @@ private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeLi
176175
}
177176
}
178177

178+
//TODO skrive om sånn at det ikke trengs en metode for list og en annen for map
179+
private LocalDateTimeline<Boolean> lagTidslinjeOgValiderForYtelseperioder(List<Periode> periodeList, String felt) throws ValideringsAvbrytendeFeilException {
180+
var feil = validerPerioderErLukketOgGyldigForYtelseperioder(periodeList, felt);
181+
if (!feil.isEmpty()) {
182+
throw new ValideringsAvbrytendeFeilException(feil);
183+
}
184+
try {
185+
return toLocalDateTimeline(periodeList);
186+
} catch (IllegalArgumentException e) {
187+
throw new ValideringsAvbrytendeFeilException(List.of(lagFeil(felt, "IllegalArgumentException", e.getMessage())));
188+
}
189+
}
190+
191+
private List<Feil> validerPerioderErLukketOgGyldigForYtelseperioder(List<Periode> perioder, String felt) {
192+
var feil = new ArrayList<Feil>();
193+
perioder.forEach(p -> {
194+
validerPerioderErLukket(p, felt + "[" + p + "]", feil);
195+
validerPerioderIkkeErInvertert(p, felt + "[" + p + "]", feil);});
196+
return feil;
197+
}
198+
179199
private List<Feil> validerPerioderErLukketOgGyldig(Map<Periode, ?> perioder, String felt) {
180200
var feil = new ArrayList<Feil>();
181201
perioder.keySet().forEach(p -> {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class EndringTest {
8686
TestUtils.feilInneholder(feil, "ytelse.nattevåk.perioder", "ugyldigPeriode");
8787
TestUtils.feilInneholder(feil, "ytelse.tilsynsordning.perioder", "ugyldigPeriode");
8888
TestUtils.feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriode");
89-
TestUtils.feilInneholder(feil, "ytelse.arbeidstid.arbeidstaker[1].perioder", "ugyldigPeriode");
89+
TestUtils.feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[1].perioder", "ugyldigPeriode");
9090
}
9191

9292
@Test

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,20 @@ class TrekkKravTest {
8181
feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriodeInterval");
8282
}
8383

84-
@Disabled
8584
@Test
8685
public void endringssøknadMedTrekkKravPerioderOverlapperGirFeil() {
8786
var endringsperiode = new Periode(LocalDate.now(), LocalDate.now().plusDays(30));
8887
var trekkKravPeriode = new Periode(LocalDate.now().plusDays(5), LocalDate.now().plusDays(20));
8988

9089
var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettEndringssøknad(endringsperiode));
91-
((PleiepengerSyktBarn) søknad.getYtelse()).medEndringsperiode(endringsperiode);
90+
((PleiepengerSyktBarn) søknad.getYtelse()).addTrekkKravPeriode(trekkKravPeriode);
9291

93-
var feil = verifyHarFeil(søknad);
94-
feilInneholder(feil, "", "");
92+
var feil = verifyHarFeil(søknad, List.of(endringsperiode));
93+
feilInneholder(feil, "ytelse.beredskap.perioder", "ugyldigPeriodeInterval");
94+
feilInneholder(feil, "ytelse.nattevåk.perioder", "ugyldigPeriodeInterval");
95+
feilInneholder(feil, "ytelse.tilsynsordning.perioder", "ugyldigPeriodeInterval");
96+
feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriodeInterval");
97+
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder", "ugyldigPeriodeInterval");
9598
}
9699

97100
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
public class UtenPeriodisertDataTest {
1717

18-
@Disabled("Slå på når endringsperioder funker")
1918
@Test
2019
public void søknad_uten_periodisert_data() {
2120
var validator = new PleiepengerSyktBarnSøknadValidator();
@@ -28,6 +27,6 @@ public class UtenPeriodisertDataTest {
2827

2928
// K9-Sak på sin side validerer uten å bruke gyldig endringsperiode
3029
var feil = verifyHarFeil(søknad);
31-
feilInneholder(feil, new Feil("søknadsperiode/gyldigeEndringsperioder", "missingArgument", "Mangler søknadsperiode eller gyldigeEndringsperioder."));
30+
feilInneholder(feil, new Feil("ytelse.søknadsperiode", "missingArgument", "Mangler søknadsperiode eller gyldigeEndringsperioder."));
3231
}
3332
}

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,23 @@ public void overlappendePerioderForUttaksperiodeMap() {
211211
public void søknadMedNullJobberNormaltTimerPerDag() {
212212
var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettYtelseMedDelperioder());
213213
var søknadsperiode = søknad.getYtelse().getSøknadsperiode();
214-
var arbeidstidInfo = new ArbeidstidInfo(
215-
Map.of(søknadsperiode, new ArbeidstidPeriodeInfo(null, Duration.ofHours(7).plusMinutes(30))));
216214

217-
var arbeidstaker = new Arbeidstaker(null, Organisasjonsnummer.of("88888888"), arbeidstidInfo);
215+
var arbeidstaker = YtelseEksempel.lagArbeidstaker(new ArbeidstidPeriodeInfo(null, Duration.ofHours(7).plusMinutes(30)), søknadsperiode);
218216
((PleiepengerSyktBarn) søknad.getYtelse()).getArbeidstid().leggeTilArbeidstaker(arbeidstaker);
219217
var feil = verifyHarFeil(søknad);
220-
feilInneholder(feil, "påkrevd");
218+
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[1].arbeidstidInfo.perioder[" + søknadsperiode + "].jobberNormaltTimerPerDag", "påkrevd");
219+
}
220+
221+
@Test
222+
public void invertertPeriodeForArbeidstakerPeriode() {
223+
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
224+
var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettYtelse(søknadsperiode));
225+
var arbeidstidperiode = new Periode(LocalDate.now().plusDays(2), LocalDate.now().minusDays(2));
226+
var arbeidstaker = YtelseEksempel.lagArbeidstaker(arbeidstidperiode);
227+
((PleiepengerSyktBarn) søknad.getYtelse()).medArbeidstid(new Arbeidstid().medArbeidstaker(List.of(arbeidstaker)));
228+
229+
var feil = verifyHarFeil(søknad);
230+
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder[" + arbeidstidperiode + "]", "ugyldigPeriode");
221231
}
222232

223233
@Test

0 commit comments

Comments
 (0)