Skip to content

Commit

Permalink
Fikser tester (#574)
Browse files Browse the repository at this point in the history
  • Loading branch information
espenjv authored Nov 21, 2024
1 parent cb769dd commit f8768ed
Showing 1 changed file with 51 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@ class TilkommetInntektsforholdTjenesteTest {
public static final LocalDate STP = LocalDate.of(2024, 11, 20);

@Test
void skal_slå_sammen_perioder_med_tilkommet_over_helg_og_returnere_første_dag_med_tilkommet_som_virkedag() {
void skal_slå_sammen_perioder_med_tilkommet_over_helg() {

var arbeidsgiver = Arbeidsgiver.virksomhet(ARBEIDSGIVER_ORGNR);
var arbeidstakerandelFraStart = lagArbeidstakerandel(arbeidsgiver, 1L, AndelKilde.PROSESS_START, InternArbeidsforholdRefDto.nullRef());
var utbetalingsgradFraStart = new UtbetalingsgradPrAktivitetDto(lagAktivitet(arbeidsgiver, InternArbeidsforholdRefDto.nullRef()),
lagUtbetalingsgrader(100, STP, STP.plusDays(20)));
lagAktivitetsgrader(STP, STP.plusDays(20), 0));

var arbeidsgiver2 = Arbeidsgiver.virksomhet(ARBEIDSGIVER_ORGNR2);
var tilkommetDato = STP.plusDays(10);
var utbetalingsgradNyAndel = new UtbetalingsgradPrAktivitetDto(
lagAktivitet(arbeidsgiver2, InternArbeidsforholdRefDto.nullRef()),
lagUtbetalingsgrader(50, tilkommetDato, STP.plusDays(20)));
lagAktivitetsgrader(tilkommetDato, STP.plusDays(20), 50));

var yrkesaktivitet = lagYrkesaktivitet(arbeidsgiver, STP.minusMonths(10), STP.plusDays(9), InternArbeidsforholdRefDto.nullRef());
var nyYrkesaktivitet = lagYrkesaktivitet(arbeidsgiver2, tilkommetDato, STP.plusDays(20), InternArbeidsforholdRefDto.nullRef());
Expand All @@ -83,13 +83,52 @@ class TilkommetInntektsforholdTjenesteTest {
assertThat(førsteSegment.getTom()).isEqualTo(tilkommetDato.minusDays(1));

var andreSegment = iterator.next();
var førsteVirkedagMedTilkommet = tilkommetDato.plusDays(2);
assertThat(andreSegment.getValue().size()).isEqualTo(1);
assertThat(andreSegment.getFom()).isEqualTo(førsteVirkedagMedTilkommet);
assertThat(andreSegment.getFom()).isEqualTo(tilkommetDato);
assertThat(andreSegment.getTom()).isEqualTo(STP.plusDays(20));

}


@Test
void skal_slå_sammen_perioder_over_helg_dersom_ny_aktivitet_har_fullt_fravær() {

var arbeidsgiver = Arbeidsgiver.virksomhet(ARBEIDSGIVER_ORGNR);
var arbeidstakerandelFraStart = lagArbeidstakerandel(arbeidsgiver, 1L, AndelKilde.PROSESS_START, InternArbeidsforholdRefDto.nullRef());
var utbetalingsgradFraStart = new UtbetalingsgradPrAktivitetDto(lagAktivitet(arbeidsgiver, InternArbeidsforholdRefDto.nullRef()),
lagAktivitetsgrader(STP, STP.plusDays(20), 0));

var arbeidsgiver2 = Arbeidsgiver.virksomhet(ARBEIDSGIVER_ORGNR2);
var tilkommetDato = STP.plusDays(10);
var utbetalingsgradNyAndel = new UtbetalingsgradPrAktivitetDto(
lagAktivitet(arbeidsgiver2, InternArbeidsforholdRefDto.nullRef()),
lagAktivitetsgrader(tilkommetDato, STP.plusDays(20), 0));

var yrkesaktivitet = lagYrkesaktivitet(arbeidsgiver, STP.minusMonths(10), STP.plusDays(9), InternArbeidsforholdRefDto.nullRef());
var nyYrkesaktivitet = lagYrkesaktivitet(arbeidsgiver2, tilkommetDato, STP.plusDays(20), InternArbeidsforholdRefDto.nullRef());


var utbetalingsgradGrunnlag = new PleiepengerSyktBarnGrunnlag(List.of(
utbetalingsgradFraStart,
utbetalingsgradNyAndel));

var iay = lagIAY(List.of(yrkesaktivitet, nyYrkesaktivitet));
var tidslinje = TilkommetInntektsforholdTjeneste.finnTilkommetInntektsforholdTidslinje(
STP,
List.of(arbeidstakerandelFraStart),
utbetalingsgradGrunnlag, iay);

var segmenter = tidslinje.toSegments();

assertThat(segmenter.size()).isEqualTo(1);
var iterator = segmenter.iterator();
var førsteSegment = iterator.next();
assertThat(førsteSegment.getValue().isEmpty()).isTrue();
assertThat(førsteSegment.getFom()).isEqualTo(STP);
assertThat(førsteSegment.getTom()).isEqualTo(STP.plusDays(20));
}


private static InntektArbeidYtelseGrunnlagDto lagIAY(List<YrkesaktivitetDto> yrkesaktiviteter) {
var oppdatere = InntektArbeidYtelseAggregatBuilder.oppdatere(Optional.empty(), VersjonTypeDto.REGISTER);
var aktørArbeid = InntektArbeidYtelseAggregatBuilder.AktørArbeidBuilder.oppdatere(Optional.empty());
Expand Down Expand Up @@ -119,20 +158,20 @@ private YrkesaktivitetDto lagYrkesaktivitet(Arbeidsgiver arbeidsgiver2, LocalDat
.build();
}

private List<PeriodeMedUtbetalingsgradDto> lagUtbetalingsgrader(int i, LocalDate fom, LocalDate tom) {
private List<PeriodeMedUtbetalingsgradDto> lagAktivitetsgrader(LocalDate fom, LocalDate tom, int aktivitetsgrad) {
var tidslinje = new LocalDateTimeline<>(fom, tom, true);
var utenhelg = fjernHelg(tidslinje);
var helger = new LocalDateTimeline<>(fom, tom, true).disjoint(utenhelg);

var utbetalingsgraderForHelger = lagUtbetalingsgraderFraTidslinje(0, utenhelg);
var utbetalingsgraderForUkedager = lagUtbetalingsgraderFraTidslinje(i, utenhelg);
var utbetalingsgraderForHelger = lagAktivitetsgraderFraTidslinje(helger, 100);
var utbetalingsgraderForUkedager = lagAktivitetsgraderFraTidslinje(utenhelg, aktivitetsgrad);
utbetalingsgraderForUkedager.addAll(utbetalingsgraderForHelger);
return utbetalingsgraderForUkedager;
}

private List<PeriodeMedUtbetalingsgradDto> lagUtbetalingsgraderFraTidslinje(int i, LocalDateTimeline<Boolean> utenhelg) {
private List<PeriodeMedUtbetalingsgradDto> lagAktivitetsgraderFraTidslinje(LocalDateTimeline<Boolean> utenhelg, int aktivitetsgrad) {
return utenhelg.getLocalDateIntervals().stream()
.map(p -> lagPeriodeMedUtbetalingsgrad(i, p.getFomDato(), p.getTomDato()))
.map(p -> lagPeriodeMedAktivitetsgrad(p.getFomDato(), p.getTomDato(), aktivitetsgrad))
.collect(Collectors.toCollection(ArrayList::new));
}

Expand All @@ -157,8 +196,8 @@ public static <T> LocalDateTimeline<T> fjernHelg(LocalDateTimeline<T> input) {
return input.disjoint(helgetidslinje);
}

private PeriodeMedUtbetalingsgradDto lagPeriodeMedUtbetalingsgrad(int i, LocalDate fom, LocalDate tom) {
return new PeriodeMedUtbetalingsgradDto(Intervall.fraOgMedTilOgMed(fom, tom), null, Aktivitetsgrad.fra(100 - i));
private PeriodeMedUtbetalingsgradDto lagPeriodeMedAktivitetsgrad(LocalDate fom, LocalDate tom, int aktivitetsgrad) {
return new PeriodeMedUtbetalingsgradDto(Intervall.fraOgMedTilOgMed(fom, tom), null, Aktivitetsgrad.fra(aktivitetsgrad));
}

private AktivitetDto lagAktivitet(Arbeidsgiver arbeidsgiver2, InternArbeidsforholdRefDto ref) {
Expand Down

0 comments on commit f8768ed

Please sign in to comment.