From 9aa9ad5284ca234a7c33abf6f9d05ec65026c651 Mon Sep 17 00:00:00 2001 From: Petter Ekern Date: Fri, 13 Oct 2023 09:49:01 +0200 Subject: [PATCH 1/4] Kontrakt for tilkjent ytelse til bruk mellom formidling og fpsak --- .../TilkjentYtelseAndelDto.java | 20 +++++++++++++++++++ .../TilkjentYtelseDagytelseDto.java | 6 ++++++ ...ilkjentYtelseEngangsst\303\270nadDto.java" | 3 +++ .../TilkjentYtelsePeriodeDto.java | 11 ++++++++++ .../kodeverk/Aktivitetstatus.java | 19 ++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java create mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java create mode 100644 "vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" create mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java create mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java new file mode 100644 index 00000000..81cd2f61 --- /dev/null +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java @@ -0,0 +1,20 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.kodeverk.Aktivitetstatus; + +import java.math.BigDecimal; + +public record TilkjentYtelseAndelDto(String arbeidsgiverReferanse, + @Min(0) @Max(Integer.MAX_VALUE) Integer refusjon, + @Min(0) @Max(Integer.MAX_VALUE) Integer tilSoker, + @NotNull @Valid Aktivitetstatus aktivitetstatus, + String arbeidsforholdId, + @Valid @Digits(integer = 8, fraction = 2) @DecimalMin("0.00") @DecimalMax("10000000.00") BigDecimal stillingsprosent) { +} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java new file mode 100644 index 00000000..06e9b78d --- /dev/null +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java @@ -0,0 +1,6 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +public record TilkjentYtelseDagytelseDto(@Valid @NotNull TilkjentYtelsePeriodeDto[] perioder) {} diff --git "a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" "b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" new file mode 100644 index 00000000..71b15f94 --- /dev/null +++ "b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" @@ -0,0 +1,3 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; + +public record TilkjentYtelseEngangsstønadDto(Long beregnetTilkjentYtelse) {} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java new file mode 100644 index 00000000..90140ca8 --- /dev/null +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java @@ -0,0 +1,11 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +import java.time.LocalDate; + +public record TilkjentYtelsePeriodeDto(@NotNull LocalDate fom, + @NotNull LocalDate tom, + Integer dagsats, + @Valid @NotNull TilkjentYtelseAndelDto[] andeler) {} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java new file mode 100644 index 00000000..3d2d8128 --- /dev/null +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java @@ -0,0 +1,19 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.kodeverk; + +public enum Aktivitetstatus { + ARBEIDSAVKLARINGSPENGER, + ARBEIDSTAKER, + DAGPENGER, + FRILANSER, + MILITÆR_ELLER_SIVIL, + SELVSTENDIG_NÆRINGSDRIVENDE, + KOMBINERT_AT_FL, + KOMBINERT_AT_SN, + KOMBINERT_FL_SN, + KOMBINERT_AT_FL_SN, + BRUKERS_ANDEL, + KUN_YTELSE, + TTLSTØTENDE_YTELSE, + VENTELØNN_VARTPENGER, + UDEFINERT, +} From f2c8559ee6831832f96a2cb2b2461c825f5f0300 Mon Sep 17 00:00:00 2001 From: Petter Ekern Date: Fri, 13 Oct 2023 10:17:37 +0200 Subject: [PATCH 2/4] Sonarfiks --- .../fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java | 4 +++- .../fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java index 06e9b78d..f5727425 100644 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java @@ -3,4 +3,6 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; -public record TilkjentYtelseDagytelseDto(@Valid @NotNull TilkjentYtelsePeriodeDto[] perioder) {} +import java.util.List; + +public record TilkjentYtelseDagytelseDto(@Valid @NotNull List perioder) {} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java index 90140ca8..ad744dbe 100644 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java @@ -4,8 +4,9 @@ import jakarta.validation.constraints.NotNull; import java.time.LocalDate; +import java.util.List; public record TilkjentYtelsePeriodeDto(@NotNull LocalDate fom, @NotNull LocalDate tom, Integer dagsats, - @Valid @NotNull TilkjentYtelseAndelDto[] andeler) {} + @Valid List andeler) {} From f1f18b5d1ca128ad32e04fcab64e4d61f96931bd Mon Sep 17 00:00:00 2001 From: Petter Ekern Date: Fri, 13 Oct 2023 12:04:17 +0200 Subject: [PATCH 3/4] Samler alt i en fil --- .../TilkjentYtelseAndelDto.java | 20 --------- .../TilkjentYtelseDagytelseDto.java | 43 ++++++++++++++++++- .../TilkjentYtelsePeriodeDto.java | 12 ------ .../kodeverk/Aktivitetstatus.java | 19 -------- 4 files changed, 42 insertions(+), 52 deletions(-) delete mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java delete mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java delete mode 100644 vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java deleted file mode 100644 index 81cd2f61..00000000 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseAndelDto.java +++ /dev/null @@ -1,20 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.DecimalMax; -import jakarta.validation.constraints.DecimalMin; -import jakarta.validation.constraints.Digits; -import jakarta.validation.constraints.Max; -import jakarta.validation.constraints.Min; -import jakarta.validation.constraints.NotNull; -import no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.kodeverk.Aktivitetstatus; - -import java.math.BigDecimal; - -public record TilkjentYtelseAndelDto(String arbeidsgiverReferanse, - @Min(0) @Max(Integer.MAX_VALUE) Integer refusjon, - @Min(0) @Max(Integer.MAX_VALUE) Integer tilSoker, - @NotNull @Valid Aktivitetstatus aktivitetstatus, - String arbeidsforholdId, - @Valid @Digits(integer = 8, fraction = 2) @DecimalMin("0.00") @DecimalMax("10000000.00") BigDecimal stillingsprosent) { -} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java index f5727425..cfabb065 100644 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java @@ -1,8 +1,49 @@ package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDate; import java.util.List; -public record TilkjentYtelseDagytelseDto(@Valid @NotNull List perioder) {} +public record TilkjentYtelseDagytelseDto(@Valid @NotNull List perioder) { + + public record TilkjentYtelsePeriodeDto(@NotNull LocalDate fom, + @NotNull LocalDate tom, + Integer dagsats, + @Valid List andeler) {} + + public record TilkjentYtelseAndelDto(String arbeidsgiverReferanse, + @Min(0) @Max(Integer.MAX_VALUE) Integer refusjon, + @Min(0) @Max(Integer.MAX_VALUE) Integer tilSoker, + @NotNull @Valid Aktivitetstatus aktivitetstatus, + String arbeidsforholdId, + @Valid @Digits(integer = 8, fraction = 2) @DecimalMin("0.00") @DecimalMax("10000000.00") BigDecimal stillingsprosent) {} + + public enum Aktivitetstatus { + ARBEIDSAVKLARINGSPENGER, + ARBEIDSTAKER, + DAGPENGER, + FRILANSER, + MILITÆR_ELLER_SIVIL, + SELVSTENDIG_NÆRINGSDRIVENDE, + KOMBINERT_AT_FL, + KOMBINERT_AT_SN, + KOMBINERT_FL_SN, + KOMBINERT_AT_FL_SN, + BRUKERS_ANDEL, + KUN_YTELSE, + TTLSTØTENDE_YTELSE, + VENTELØNN_VARTPENGER, + UDEFINERT, + } + +} + + diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java deleted file mode 100644 index ad744dbe..00000000 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelsePeriodeDto.java +++ /dev/null @@ -1,12 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; - -import java.time.LocalDate; -import java.util.List; - -public record TilkjentYtelsePeriodeDto(@NotNull LocalDate fom, - @NotNull LocalDate tom, - Integer dagsats, - @Valid List andeler) {} diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java deleted file mode 100644 index 3d2d8128..00000000 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/kodeverk/Aktivitetstatus.java +++ /dev/null @@ -1,19 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse.kodeverk; - -public enum Aktivitetstatus { - ARBEIDSAVKLARINGSPENGER, - ARBEIDSTAKER, - DAGPENGER, - FRILANSER, - MILITÆR_ELLER_SIVIL, - SELVSTENDIG_NÆRINGSDRIVENDE, - KOMBINERT_AT_FL, - KOMBINERT_AT_SN, - KOMBINERT_FL_SN, - KOMBINERT_AT_FL_SN, - BRUKERS_ANDEL, - KUN_YTELSE, - TTLSTØTENDE_YTELSE, - VENTELØNN_VARTPENGER, - UDEFINERT, -} From 5fd707047b939f5525670c01f1aa42cade8adce1 Mon Sep 17 00:00:00 2001 From: Petter Ekern Date: Fri, 13 Oct 2023 14:19:03 +0200 Subject: [PATCH 4/4] Endringe etter qa --- .../TilkjentYtelseDagytelseDto.java | 23 +++++---- ...ilkjentYtelseEngangsst\303\270nadDto.java" | 5 +- .../TilkjentYtelseDagytelseDtoTest.java | 51 +++++++++++++++++++ 3 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 vl-kontrakt-fp-formidling/src/test/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDtoTest.java diff --git a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java index cfabb065..79f5e409 100644 --- a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java +++ b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDto.java @@ -7,24 +7,25 @@ import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; -public record TilkjentYtelseDagytelseDto(@Valid @NotNull List perioder) { +public record TilkjentYtelseDagytelseDto(List<@Valid @NotNull TilkjentYtelsePeriodeDto> perioder) { public record TilkjentYtelsePeriodeDto(@NotNull LocalDate fom, - @NotNull LocalDate tom, - Integer dagsats, - @Valid List andeler) {} - - public record TilkjentYtelseAndelDto(String arbeidsgiverReferanse, - @Min(0) @Max(Integer.MAX_VALUE) Integer refusjon, - @Min(0) @Max(Integer.MAX_VALUE) Integer tilSoker, - @NotNull @Valid Aktivitetstatus aktivitetstatus, - String arbeidsforholdId, - @Valid @Digits(integer = 8, fraction = 2) @DecimalMin("0.00") @DecimalMax("10000000.00") BigDecimal stillingsprosent) {} + @NotNull LocalDate tom, + @Min(0) @Max(Integer.MAX_VALUE) Integer dagsats, + List<@Valid @NotNull TilkjentYtelseAndelDto> andeler) {} + + public record TilkjentYtelseAndelDto(@Pattern(regexp = "\\d{9}|\\d{13}") String arbeidsgiverReferanse, + @Min(0) @Max(Integer.MAX_VALUE) Integer refusjon, + @Min(0) @Max(Integer.MAX_VALUE) Integer tilSoker, + @NotNull @Valid Aktivitetstatus aktivitetstatus, + @Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$") String arbeidsforholdId, + @Valid @Digits(integer = 8, fraction = 2) @DecimalMin("0.00") @DecimalMax("10000000.00") BigDecimal stillingsprosent) {} public enum Aktivitetstatus { ARBEIDSAVKLARINGSPENGER, diff --git "a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" "b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" index 71b15f94..b19ec9c9 100644 --- "a/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" +++ "b/vl-kontrakt-fp-formidling/src/main/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseEngangsst\303\270nadDto.java" @@ -1,3 +1,6 @@ package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; -public record TilkjentYtelseEngangsstønadDto(Long beregnetTilkjentYtelse) {} +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; + +public record TilkjentYtelseEngangsstønadDto(@Min(0) @Max(Long.MAX_VALUE) Long beregnetTilkjentYtelse) {} diff --git a/vl-kontrakt-fp-formidling/src/test/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDtoTest.java b/vl-kontrakt-fp-formidling/src/test/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDtoTest.java new file mode 100644 index 00000000..392955e7 --- /dev/null +++ b/vl-kontrakt-fp-formidling/src/test/java/no/nav/foreldrepenger/kontrakter/fpsak/tilkjentytelse/TilkjentYtelseDagytelseDtoTest.java @@ -0,0 +1,51 @@ +package no.nav.foreldrepenger.kontrakter.fpsak.tilkjentytelse; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.databind.ObjectWriter; +import no.nav.foreldrepenger.kontrakter.formidling.v1.TestJsonMapper; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Collections; + +import static org.assertj.core.api.Assertions.assertThat; + +class TilkjentYtelseDagytelseDtoTest { + + private static final ObjectWriter WRITER = TestJsonMapper.getMapper().writerWithDefaultPrettyPrinter(); + private static final ObjectReader READER = TestJsonMapper.getMapper().reader(); + + @Test + void testRoundtrip() throws JsonProcessingException { + var andelRequest = new TilkjentYtelseDagytelseDto.TilkjentYtelseAndelDto("999999999", + 200000, 100000, TilkjentYtelseDagytelseDto.Aktivitetstatus.ARBEIDSTAKER, + "arb001", BigDecimal.valueOf(100)); + var periodeRequest = new TilkjentYtelseDagytelseDto.TilkjentYtelsePeriodeDto(LocalDate.now(), LocalDate.now().plusDays(10), 0, + Collections.singletonList( + andelRequest)); + var grunnlagRequest = new TilkjentYtelseDagytelseDto(Collections.singletonList(periodeRequest)); + + // Act + var json = WRITER.writeValueAsString(grunnlagRequest); + + var grunnlagResponse = (TilkjentYtelseDagytelseDto) READER.forType(TilkjentYtelseDagytelseDto.class).readValue(json); + + // Assert + assertThat(grunnlagResponse).isNotNull(); + assertThat(grunnlagResponse.perioder()).hasSize(1); + var periodeResponse = grunnlagResponse.perioder().get(0); + assertThat(periodeResponse.fom()).isEqualTo(periodeRequest.fom()); + assertThat(periodeResponse.tom()).isEqualTo(periodeRequest.tom()); + assertThat(periodeResponse.dagsats()).isEqualTo(periodeRequest.dagsats()); + assertThat(periodeResponse.andeler()).hasSize(1); + var andelResponse = periodeResponse.andeler().get(0); + assertThat(andelResponse.aktivitetstatus()).isEqualTo(andelRequest.aktivitetstatus()); + assertThat(andelResponse.arbeidsforholdId()).isEqualTo(andelRequest.arbeidsforholdId()); + assertThat(andelResponse.arbeidsgiverReferanse()).isEqualTo(andelRequest.arbeidsgiverReferanse()); + assertThat(andelResponse.refusjon()).isEqualTo(andelRequest.refusjon()); + assertThat(andelResponse.tilSoker()).isEqualTo(andelRequest.tilSoker()); + assertThat(andelResponse.stillingsprosent()).isEqualByComparingTo(andelRequest.stillingsprosent()); + } +}