Skip to content

Commit

Permalink
fikset på feltnavn for feilmeding arbeidstid.arbeidstakerList og map … (
Browse files Browse the repository at this point in the history
#206)

* fikset på feltnavn for feilmeding arbeidstid.arbeidstakerList og map indeks

* lagt på todo for rydding
  • Loading branch information
christofferlohne authored Oct 8, 2021
1 parent 5af526e commit 2ff42ce
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public static List<PerioderMedEndring> getArbeidstidPerioder(Arbeidstid arbeidst
if (arbeidstid.getArbeidstakerList() != null && !arbeidstid.getArbeidstakerList().isEmpty()) {
int i = 0;
for (var at : arbeidstid.getArbeidstakerList()) {
listen.add(new PerioderMedEndring().medPerioder("arbeidstid.arbeidstaker[" + i + "]", at.getArbeidstidInfo().getPerioder()));
listen.add(new PerioderMedEndring().medPerioder("arbeidstid.arbeidstakerList[" + i + "]", at.getArbeidstidInfo().getPerioder()));
i++;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ private List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
}

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

Expand Down Expand Up @@ -163,8 +163,7 @@ private Feil lagFeil(String felt, String feilkode, String feilmelding) {
return new Feil(YTELSE_FELT + felt, feilkode, feilmelding);
}

private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt)
throws ValideringsAvbrytendeFeilException {
private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeList, String felt) throws ValideringsAvbrytendeFeilException {
var feil = validerPerioderErLukketOgGyldig(periodeList, felt);
if (!feil.isEmpty()) {
throw new ValideringsAvbrytendeFeilException(feil);
Expand All @@ -176,6 +175,27 @@ private LocalDateTimeline<Boolean> lagTidslinjeOgValider(List<Periode> periodeLi
}
}

//TODO skrive om sånn at det ikke trengs en metode for list og en annen for map
private LocalDateTimeline<Boolean> lagTidslinjeOgValiderForYtelseperioder(List<Periode> periodeList, String felt) throws ValideringsAvbrytendeFeilException {
var feil = validerPerioderErLukketOgGyldigForYtelseperioder(periodeList, felt);
if (!feil.isEmpty()) {
throw new ValideringsAvbrytendeFeilException(feil);
}
try {
return toLocalDateTimeline(periodeList);
} catch (IllegalArgumentException e) {
throw new ValideringsAvbrytendeFeilException(List.of(lagFeil(felt, "IllegalArgumentException", e.getMessage())));
}
}

private List<Feil> validerPerioderErLukketOgGyldigForYtelseperioder(List<Periode> perioder, String felt) {
var feil = new ArrayList<Feil>();
perioder.forEach(p -> {
validerPerioderErLukket(p, felt + "[" + p + "]", feil);
validerPerioderIkkeErInvertert(p, felt + "[" + p + "]", feil);});
return feil;
}

private List<Feil> validerPerioderErLukketOgGyldig(Map<Periode, ?> perioder, String felt) {
var feil = new ArrayList<Feil>();
perioder.keySet().forEach(p -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class EndringTest {
TestUtils.feilInneholder(feil, "ytelse.nattevåk.perioder", "ugyldigPeriode");
TestUtils.feilInneholder(feil, "ytelse.tilsynsordning.perioder", "ugyldigPeriode");
TestUtils.feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriode");
TestUtils.feilInneholder(feil, "ytelse.arbeidstid.arbeidstaker[1].perioder", "ugyldigPeriode");
TestUtils.feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[1].perioder", "ugyldigPeriode");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,20 @@ class TrekkKravTest {
feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriodeInterval");
}

@Disabled
@Test
public void endringssøknadMedTrekkKravPerioderOverlapperGirFeil() {
var endringsperiode = new Periode(LocalDate.now(), LocalDate.now().plusDays(30));
var trekkKravPeriode = new Periode(LocalDate.now().plusDays(5), LocalDate.now().plusDays(20));

var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettEndringssøknad(endringsperiode));
((PleiepengerSyktBarn) søknad.getYtelse()).medEndringsperiode(endringsperiode);
((PleiepengerSyktBarn) søknad.getYtelse()).addTrekkKravPeriode(trekkKravPeriode);

var feil = verifyHarFeil(søknad);
feilInneholder(feil, "", "");
var feil = verifyHarFeil(søknad, List.of(endringsperiode));
feilInneholder(feil, "ytelse.beredskap.perioder", "ugyldigPeriodeInterval");
feilInneholder(feil, "ytelse.nattevåk.perioder", "ugyldigPeriodeInterval");
feilInneholder(feil, "ytelse.tilsynsordning.perioder", "ugyldigPeriodeInterval");
feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriodeInterval");
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder", "ugyldigPeriodeInterval");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

public class UtenPeriodisertDataTest {

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

// K9-Sak på sin side validerer uten å bruke gyldig endringsperiode
var feil = verifyHarFeil(søknad);
feilInneholder(feil, new Feil("søknadsperiode/gyldigeEndringsperioder", "missingArgument", "Mangler søknadsperiode eller gyldigeEndringsperioder."));
feilInneholder(feil, new Feil("ytelse.søknadsperiode", "missingArgument", "Mangler søknadsperiode eller gyldigeEndringsperioder."));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -211,13 +211,23 @@ public void overlappendePerioderForUttaksperiodeMap() {
public void søknadMedNullJobberNormaltTimerPerDag() {
var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettYtelseMedDelperioder());
var søknadsperiode = søknad.getYtelse().getSøknadsperiode();
var arbeidstidInfo = new ArbeidstidInfo(
Map.of(søknadsperiode, new ArbeidstidPeriodeInfo(null, Duration.ofHours(7).plusMinutes(30))));

var arbeidstaker = new Arbeidstaker(null, Organisasjonsnummer.of("88888888"), arbeidstidInfo);
var arbeidstaker = YtelseEksempel.lagArbeidstaker(new ArbeidstidPeriodeInfo(null, Duration.ofHours(7).plusMinutes(30)), søknadsperiode);
((PleiepengerSyktBarn) søknad.getYtelse()).getArbeidstid().leggeTilArbeidstaker(arbeidstaker);
var feil = verifyHarFeil(søknad);
feilInneholder(feil, "påkrevd");
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[1].arbeidstidInfo.perioder[" + søknadsperiode + "].jobberNormaltTimerPerDag", "påkrevd");
}

@Test
public void invertertPeriodeForArbeidstakerPeriode() {
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
var søknad = SøknadEksempel.søknad(YtelseEksempel.komplettYtelse(søknadsperiode));
var arbeidstidperiode = new Periode(LocalDate.now().plusDays(2), LocalDate.now().minusDays(2));
var arbeidstaker = YtelseEksempel.lagArbeidstaker(arbeidstidperiode);
((PleiepengerSyktBarn) søknad.getYtelse()).medArbeidstid(new Arbeidstid().medArbeidstaker(List.of(arbeidstaker)));

var feil = verifyHarFeil(søknad);
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder[" + arbeidstidperiode + "]", "ugyldigPeriode");
}

@Test
Expand Down

0 comments on commit 2ff42ce

Please sign in to comment.