@@ -332,6 +332,65 @@ class UtbetalingsTidslinjeServiceTest {
332
332
assertThat(perioderIAndreTidslinje[0 ].verdi.periodeId).isEqualTo(førstegangsbehandlingPeriode1Kjede2.periodeId)
333
333
assertThat(perioderIAndreTidslinje[0 ].verdi.forrigePeriodeId).isEqualTo(førstegangsbehandlingPeriode1Kjede2.forrigePeriodeId)
334
334
}
335
+
336
+ @Test
337
+ fun `skal generere utbetalingstidslinjer for revurdering med opphør som følge av overskrevet andel` () {
338
+ // Arrange
339
+ val fagsak = lagFagsak()
340
+ val førstegangsbehandling = lagBehandling(fagsak)
341
+ val revurdering = lagBehandling(fagsak)
342
+
343
+ val revurderingPeriode3Kjede1 =
344
+ lagUtbetalingsperiode(
345
+ fom = førstegangsBehandlingPeriode1Kjede1.vedtakdatoFom,
346
+ tom = førstegangsBehandlingPeriode1Kjede1.vedtakdatoTom.plusMonths(1 ),
347
+ periodeId = 3 ,
348
+ forrigePeriodeId = 1 ,
349
+ behandlingId = revurdering.id,
350
+ klassifisering = YtelseType .ORDIN ÆR_BARNETRYGD .klassifisering,
351
+ beløp = BigDecimal .valueOf(500L ),
352
+ )
353
+
354
+ val utbetalingsoppdragRevurderingOpphørVedOverskriving =
355
+ lagUtbetalingsoppdrag(
356
+ avstemmingTidspunkt = LocalDateTime .of(2025 , 3 , 1 , 0 , 0 , 0 ),
357
+ utbetalingsperiode =
358
+ listOf (
359
+ revurderingPeriode3Kjede1,
360
+ ),
361
+ )
362
+
363
+ every { tilkjentYtelseRepository.findByFagsak(fagsak.id) } returns
364
+ listOf (
365
+ lagTilkjentYtelse(behandling = førstegangsbehandling, utbetalingsoppdrag = objectMapper.writeValueAsString(lagUtbetalingsoppdragFørstegangsbehandling())),
366
+ lagTilkjentYtelse(behandling = revurdering, utbetalingsoppdrag = objectMapper.writeValueAsString(utbetalingsoppdragRevurderingOpphørVedOverskriving)),
367
+ )
368
+
369
+ // Act
370
+ val utbetalingstidslinjer = utbetalingsTidslinjeService.genererUtbetalingstidslinjerForFagsak(fagsakId = fagsak.id)
371
+ val førsteTidslinje = utbetalingsTidslinjeService.finnUtbetalingsTidslinjeForPeriodeId(førstePeriodeIdKjede1, utbetalingstidslinjer)
372
+ val andreTidslinje = utbetalingsTidslinjeService.finnUtbetalingsTidslinjeForPeriodeId(førstePeriodeIdKjede2, utbetalingstidslinjer)
373
+
374
+ // Assert
375
+ assertThat(utbetalingstidslinjer).hasSize(2 )
376
+ assertThat(førsteTidslinje.tidslinje).isNotNull
377
+ val perioderIFørsteTidslinje = førsteTidslinje.tidslinje.tilPerioderIkkeNull()
378
+ assertThat(perioderIFørsteTidslinje).hasSize(1 )
379
+ assertThat(perioderIFørsteTidslinje[0 ].fom).isEqualTo(revurderingPeriode3Kjede1.vedtakdatoFom)
380
+ assertThat(perioderIFørsteTidslinje[0 ].tom).isEqualTo(revurderingPeriode3Kjede1.vedtakdatoTom)
381
+ assertThat(perioderIFørsteTidslinje[0 ].verdi.behandlingId).isEqualTo(revurderingPeriode3Kjede1.behandlingId)
382
+ assertThat(perioderIFørsteTidslinje[0 ].verdi.periodeId).isEqualTo(revurderingPeriode3Kjede1.periodeId)
383
+ assertThat(perioderIFørsteTidslinje[0 ].verdi.forrigePeriodeId).isEqualTo(revurderingPeriode3Kjede1.forrigePeriodeId)
384
+
385
+ assertThat(andreTidslinje.tidslinje).isNotNull
386
+ val perioderIAndreTidslinje = andreTidslinje.tidslinje.tilPerioderIkkeNull()
387
+ assertThat(perioderIAndreTidslinje).hasSize(1 )
388
+ assertThat(perioderIAndreTidslinje[0 ].fom).isEqualTo(førstegangsbehandlingPeriode1Kjede2.vedtakdatoFom)
389
+ assertThat(perioderIAndreTidslinje[0 ].tom).isEqualTo(førstegangsbehandlingPeriode1Kjede2.vedtakdatoTom)
390
+ assertThat(perioderIAndreTidslinje[0 ].verdi.behandlingId).isEqualTo(førstegangsbehandlingPeriode1Kjede2.behandlingId)
391
+ assertThat(perioderIAndreTidslinje[0 ].verdi.periodeId).isEqualTo(førstegangsbehandlingPeriode1Kjede2.periodeId)
392
+ assertThat(perioderIAndreTidslinje[0 ].verdi.forrigePeriodeId).isEqualTo(førstegangsbehandlingPeriode1Kjede2.forrigePeriodeId)
393
+ }
335
394
}
336
395
337
396
private val førstegangsBehandlingPeriode1Kjede1 =
0 commit comments