diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index de3c68c3..8b3200b2 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -1,16 +1,21 @@ name: Bygg pull request -on: [pull_request_target] +on: + pull_request: + paths-ignore: + - '**.md' + - '**.MD' + - '.gitignore' + - 'LICENSE' + - 'CODEOWNERS' + - 'dokumentasjon/**' + - 'lokalutvikling/**' jobs: build: - runs-on: ubuntu-latest - steps: - - name: Sjekk ut kode - uses: actions/checkout@v3 - + - uses: actions/checkout@v3 - name: Setup maven uses: whelk-io/maven-settings-xml-action@v20 with: @@ -28,10 +33,7 @@ jobs: - name: Hent tag run: echo "TAG=$(date +%Y.%m.%d.%H%M%S)-$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV - name: Build - shell: bash env: - GH_ACCESS_TOKEN : ${{ secrets.GH_ACCESS_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | echo "Building $TAG" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ed33e63..5990d821 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,8 +44,6 @@ jobs: run: | mvn jacoco:prepare-agent verify jacoco:report sonar:sonar -e -B -s settings.xml -Drevision=$TAG env: - GH_ACCESS_TOKEN : ${{ secrets.GH_ACCESS_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - name: Release Drafter diff --git a/.github/workflows/release-kontrakt.yml b/.github/workflows/release-kontrakt.yml index 1841103b..17bd9802 100644 --- a/.github/workflows/release-kontrakt.yml +++ b/.github/workflows/release-kontrakt.yml @@ -34,6 +34,4 @@ jobs: mvn -B -s settings.xml versions:set -DnewVersion=${NEW_VERSION} -DgenerateBackupPoms=false mvn deploy -e -B -s settings.xml -Dfile.encoding=UTF-8 env: - GH_ACCESS_TOKEN : ${{ secrets.GH_ACCESS_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} NEW_VERSION: ${{ github.event.release.tag_name }} diff --git a/vl-kontrakt-fp-ws-proxy/pom.xml b/vl-kontrakt-fp-ws-proxy/pom.xml index 24698907..7da0471c 100644 --- a/vl-kontrakt-fp-ws-proxy/pom.xml +++ b/vl-kontrakt-fp-ws-proxy/pom.xml @@ -8,18 +8,11 @@ ${revision} - vl-kontrakt-fp-ws-proxy + fp-ws-proxy-v1 jar (FPSAK) Kontrakter - fp-ws-proxy - - - no.nav.foreldrepenger.felles - felles-util - 4.2.8 - provided - com.fasterxml.jackson.core jackson-annotations @@ -28,5 +21,22 @@ jakarta.validation jakarta.validation-api + + + + com.fasterxml.jackson.core + jackson-databind + test + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + test + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + test + diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningDto.java deleted file mode 100644 index 9f6cddbc..00000000 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningDto.java +++ /dev/null @@ -1,17 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -public record BeregningDto(String gjelderId, - String gjelderNavn, - String datoBeregnet, - String kodeFaggruppe, - BigDecimal belop, - List beregningsPeriode) { - - public BeregningDto { - beregningsPeriode = Optional.ofNullable(beregningsPeriode).orElse(List.of()); - } -} diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245DetaljerDto.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245DetaljerDto.java" deleted file mode 100644 index 23cc783e..00000000 --- "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245DetaljerDto.java" +++ /dev/null @@ -1,32 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -import java.math.BigDecimal; -import java.math.BigInteger; - -public record BeregningStoppnivåDetaljerDto(String faktiskFom, - String faktiskTom, - String kontoStreng, - String behandlingskode, - BigDecimal belop, - long trekkVedtakId, - String stonadId, - String korrigering, - boolean tilbakeforing, - BigInteger linjeId, - BigDecimal sats, - String typeSats, - BigDecimal antallSats, - String saksbehId, - BigInteger uforeGrad, - String kravhaverId, - String delytelseId, - String bostedsenhet, - String skykldnerId, - String klassekode, - String klasseKodeBeskrivelse, - String typeKlasse, - String typeKlasseBeskrivelse, - String refunderesOrgNr) { - - -} diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245Dto.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245Dto.java" deleted file mode 100644 index 3b58a55a..00000000 --- "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningStoppniv\303\245Dto.java" +++ /dev/null @@ -1,24 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -import java.math.BigInteger; -import java.util.List; -import java.util.Optional; - - -public record BeregningStoppnivåDto(String kodeFagomraade, - BigInteger stoppNivaaId, - String behandlendeEnhet, - long oppdragsId, - String fagsystemId, - String kid, - String utbetalesTilId, - String utbetalesTilNavn, - String bilagsType, - String forfall, - boolean feilkonto, - List beregningStoppnivaaDetaljer) { - - public BeregningStoppnivåDto { - beregningStoppnivaaDetaljer = Optional.ofNullable(beregningStoppnivaaDetaljer).orElse(List.of()); - } -} diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Fagomr\303\245de.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Fagomr\303\245de.java" deleted file mode 100644 index 620ccabb..00000000 --- "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Fagomr\303\245de.java" +++ /dev/null @@ -1,62 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public enum Fagområde { - /** engangsstønad **/ - REFUTG, - /** foreldrepenger **/ - FP, - /** foreldrepenger til arbeidsgiver **/ - FPREF, - /** sykepenger **/ - SP, - /** sykepenger til arbeidsgiver **/ - SPREF, - /** svangerskapspenger **/ - SVP, - /** svangerskapspenger til arbeidsgiver **/ - SVPREF, - /** pleiepenger sykt barn **/ - PB, - /** pleiepenger sykt barn til arbeidsgiver **/ - PBREF, - /** pleiepenger nærstående **/ - PN, - /** pleiepenger nærstående til arbeidsgiver **/ - PNREF, - /** omsorgspenger **/ - OM, - /** omsorgspenger til arbeidsgiver **/ - OMREF, - /** opplæringspenger **/ - OPP, - /** opplæringspenger til arbeidsgiver **/ - OPPREF, - /** pleiepenger_v1 **/ - OOP, - /** pleiepenger_v1 til arbeidsgiver **/ - OOPREF, - ; - - private static final Logger LOG = LoggerFactory.getLogger(Fagområde.class); - - public static Fagområde fraKode(String kode) { - try { - return Fagområde.valueOf(kode); - } catch (IllegalArgumentException ex) { - LOG.warn("Finner ikke FagOmrådeKode for {}", kode); - throw ex; - } - } - - public static Fagområde utledFra(YtelseType ytelseType) { - return switch (ytelseType) { - case FP -> Fagområde.FP; - case SVP -> Fagområde.SVP; - case ES -> Fagområde.REFUTG; - default -> throw new IllegalArgumentException("Utvikler-feil: Mangler mapping mellom ytelsetype og FagOmrådeKode for bruker. Ytelsetype=" + ytelseType); - }; - } -} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeStatusLinje.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeStatusLinje.java deleted file mode 100644 index 4b407278..00000000 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeStatusLinje.java +++ /dev/null @@ -1,5 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -public enum KodeStatusLinje { - OPPH, //opphør -} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdrag110Dto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdrag110Dto.java deleted file mode 100644 index 6e1a148d..00000000 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdrag110Dto.java +++ /dev/null @@ -1,30 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -import java.util.List; -import java.util.Optional; - -import javax.validation.Valid; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; - -import no.nav.vedtak.util.InputValideringRegex; - -/** - * Skal være samme som no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdrag110 - */ -public record Oppdrag110Dto(@Valid @NotNull KodeEndring kodeEndring, - @Valid @NotNull KodeFagområde kodeFagomrade, - @NotNull @Min(0) @Max(Long.MAX_VALUE) Long fagsystemId, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String oppdragGjelderId, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String saksbehId, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String nøkkelAvstemming, - @Valid Ompostering116Dto ompostering116, - @Valid @Size List<@Valid Oppdragslinje150Dto> oppdragslinje150Liste) { - - public Oppdrag110Dto { - oppdragslinje150Liste = Optional.ofNullable(oppdragslinje150Liste).orElse(List.of()); - } -} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/YtelseType.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/YtelseType.java deleted file mode 100644 index 6f352359..00000000 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/YtelseType.java +++ /dev/null @@ -1,13 +0,0 @@ -package no.nav.foreldrepenger.kontrakter.simulering; - -public enum YtelseType { - ES, - FP, - SVP, - SYKEPENGER, - PLEIEPENGER_SYKT_BARN, - PLEIEPENGER_NÆRSTÅENDE, - OMSORGSPENGER, - OPPLÆRINGSPENGER, - ; -} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndring.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndring.java similarity index 57% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndring.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndring.java index 947ddb5a..5441b837 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndring.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndring.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; public enum KodeEndring { NY, //ny diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndringLinje.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndringLinje.java similarity index 52% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndringLinje.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndringLinje.java index ad0a6a92..b0301e29 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeEndringLinje.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeEndringLinje.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; public enum KodeEndringLinje { NY, //ny diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeFagomr\303\245de.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeFagomr\303\245de.java" similarity index 90% rename from "vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeFagomr\303\245de.java" rename to "vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeFagomr\303\245de.java" index e571dce5..d9f2ab08 100644 --- "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeFagomr\303\245de.java" +++ "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeFagomr\303\245de.java" @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; public enum KodeFagområde { REFUTG, //engangsstønad diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeKlassifik.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeKlassifik.java similarity index 97% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeKlassifik.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeKlassifik.java index 6c36ec75..8026dc46 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/KodeKlassifik.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeKlassifik.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeStatusLinje.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeStatusLinje.java new file mode 100644 index 00000000..43e2f9d0 --- /dev/null +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/KodeStatusLinje.java @@ -0,0 +1,5 @@ +package no.nav.foreldrepenger.kontrakter.simulering.request; + +public enum KodeStatusLinje { + OPPH, //opphør +} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/LukketPeriode.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/LukketPeriode.java similarity index 79% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/LukketPeriode.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/LukketPeriode.java index a8a93316..26c251df 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/LukketPeriode.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/LukketPeriode.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import java.time.LocalDate; diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Ompostering116Dto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Ompostering116Dto.java similarity index 53% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Ompostering116Dto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Ompostering116Dto.java index 9741dc08..a6a8bc32 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Ompostering116Dto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Ompostering116Dto.java @@ -1,13 +1,11 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import java.time.LocalDate; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import no.nav.vedtak.util.InputValideringRegex; - public record Ompostering116Dto(@NotNull boolean omPostering, LocalDate datoOmposterFom, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String tidspktReg) { + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String tidspktReg) { } diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdrag110Dto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdrag110Dto.java new file mode 100644 index 00000000..b40aaca8 --- /dev/null +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdrag110Dto.java @@ -0,0 +1,24 @@ +package no.nav.foreldrepenger.kontrakter.simulering.request; + +import java.util.List; + +import javax.validation.Valid; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; + +/** + * Skal være samme som no.nav.foreldrepenger.behandlingslager.økonomioppdrag.Oppdrag110 + */ +public record Oppdrag110Dto(@Valid @NotNull KodeEndring kodeEndring, + @Valid @NotNull KodeFagområde kodeFagomrade, + @NotNull @Min(0) @Max(Long.MAX_VALUE) Long fagsystemId, + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String oppdragGjelderId, + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String saksbehId, + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String nøkkelAvstemming, + @Valid Ompostering116Dto ompostering116, + @Valid @NotNull @Size(min = 1) List<@Valid @NotNull Oppdragslinje150Dto> oppdragslinje150Liste) { + +} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/OppdragskontrollDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/OppdragskontrollDto.java similarity index 87% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/OppdragskontrollDto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/OppdragskontrollDto.java index ad9ae335..e061a4df 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/OppdragskontrollDto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/OppdragskontrollDto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import java.util.List; diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdragslinje150Dto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdragslinje150Dto.java similarity index 80% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdragslinje150Dto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdragslinje150Dto.java index 6fb3082c..2ad01d1f 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Oppdragslinje150Dto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Oppdragslinje150Dto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import java.time.LocalDate; @@ -10,10 +10,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; -import no.nav.vedtak.util.InputValideringRegex; - public record Oppdragslinje150Dto(@Valid @NotNull KodeEndringLinje kodeEndringLinje, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String vedtakId, + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String vedtakId, @NotNull @Min(0) @Max(Long.MAX_VALUE) Long delytelseId, @Valid @NotNull KodeKlassifik kodeKlassifik, @Valid @NotNull LukketPeriode vedtakPeriode, @@ -22,7 +20,7 @@ public record Oppdragslinje150Dto(@Valid @NotNull KodeEndringLinje kodeEndringLi @Valid UtbetalingsgradDto utbetalingsgrad, @Valid KodeStatusLinje kodeStatusLinje, LocalDate datoStatusFom, - @Pattern(regexp = InputValideringRegex.FRITEKST) String utbetalesTilId, + @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String utbetalesTilId, @Min(0) @Max(Long.MAX_VALUE) Long refDelytelseId, @Min(0) @Max(Long.MAX_VALUE) Long refFagsystemId, @Valid Refusjonsinfo156Dto refusjonsinfo156) { diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Refusjonsinfo156Dto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Refusjonsinfo156Dto.java similarity index 53% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Refusjonsinfo156Dto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Refusjonsinfo156Dto.java index d90edb47..509f919d 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/Refusjonsinfo156Dto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/Refusjonsinfo156Dto.java @@ -1,13 +1,11 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import java.time.LocalDate; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import no.nav.vedtak.util.InputValideringRegex; - public record Refusjonsinfo156Dto(@NotNull LocalDate maksDato, - @NotNull @Pattern(regexp = InputValideringRegex.FRITEKST) String refunderesId, + @NotNull @Pattern(regexp = "^[\\p{L}\\p{Blank}.'\\-\\–0-9/\\p{Space}%§\\!?@_()+:;,=\"&\\p{Sc}]*$") String refunderesId, @NotNull LocalDate datoFom) { } diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/SatsDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/SatsDto.java similarity index 90% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/SatsDto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/SatsDto.java index 3ea108ec..e15c3e50 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/SatsDto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/SatsDto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import javax.validation.constraints.Digits; import javax.validation.constraints.Max; diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/TypeSats.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/TypeSats.java similarity index 50% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/TypeSats.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/TypeSats.java index 702eb973..c74b7cda 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/TypeSats.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/TypeSats.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; public enum TypeSats { DAG, //daglig diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/UtbetalingsgradDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/UtbetalingsgradDto.java similarity index 90% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/UtbetalingsgradDto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/UtbetalingsgradDto.java index 5567f3a2..6779b177 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/UtbetalingsgradDto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/request/UtbetalingsgradDto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.request; import javax.validation.constraints.Digits; import javax.validation.constraints.Max; diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDto.java new file mode 100644 index 00000000..16ff1f7d --- /dev/null +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDto.java @@ -0,0 +1,72 @@ +package no.nav.foreldrepenger.kontrakter.simulering.respons; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Optional; + +public record BeregningDto(String gjelderId, + String gjelderNavn, + String datoBeregnet, + String kodeFaggruppe, + BigDecimal belop, + List beregningsPeriode) { + + public BeregningDto { + beregningsPeriode = Optional.ofNullable(beregningsPeriode).orElse(List.of()); + } + + private BeregningDto(Builder builder) { + this(builder.gjelderId, + builder.gjelderNavn, + builder.datoBeregnet, + builder.kodeFaggruppe, + builder.belop, + builder.beregningsPeriode); + } + + public static class Builder { + private String gjelderId; + private String gjelderNavn; + private String datoBeregnet; + private String kodeFaggruppe; + private BigDecimal belop; + private List beregningsPeriode; + + public Builder() { + } + + public Builder gjelderId(String gjelderId) { + this.gjelderId = gjelderId; + return this; + } + + public Builder gjelderNavn(String gjelderNavn) { + this.gjelderNavn = gjelderNavn; + return this; + } + + public Builder datoBeregnet(String datoBeregnet) { + this.datoBeregnet = datoBeregnet; + return this; + } + + public Builder kodeFaggruppe(String kodeFaggruppe) { + this.kodeFaggruppe = kodeFaggruppe; + return this; + } + + public Builder belop(BigDecimal belop) { + this.belop = belop; + return this; + } + + public Builder beregningsPeriode(List beregningsPeriode) { + this.beregningsPeriode = beregningsPeriode; + return this; + } + + public BeregningDto build() throws IllegalStateException { + return new BeregningDto(this); + } + } +} diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245DetaljerDto.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245DetaljerDto.java" new file mode 100644 index 00000000..fdc74505 --- /dev/null +++ "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245DetaljerDto.java" @@ -0,0 +1,211 @@ +package no.nav.foreldrepenger.kontrakter.simulering.respons; + +import java.math.BigDecimal; +import java.math.BigInteger; + +public record BeregningStoppnivåDetaljerDto(String faktiskFom, + String faktiskTom, + String kontoStreng, + String behandlingskode, + BigDecimal belop, + long trekkVedtakId, + String stonadId, + String korrigering, + boolean tilbakeforing, + BigInteger linjeId, + BigDecimal sats, + String typeSats, + BigDecimal antallSats, + String saksbehId, + BigInteger uforeGrad, + String kravhaverId, + String delytelseId, + String bostedsenhet, + String skykldnerId, + String klassekode, + String klasseKodeBeskrivelse, + String typeKlasse, + String typeKlasseBeskrivelse, + String refunderesOrgNr) { + + private BeregningStoppnivåDetaljerDto(Builder builder) { + this(builder.faktiskFom, + builder.faktiskTom, + builder.kontoStreng, + builder.behandlingskode, + builder.belop, + builder.trekkVedtakId, + builder.stonadId, + builder.korrigering, + builder.tilbakeforing, + builder.linjeId, + builder.sats, + builder.typeSats, + builder.antallSats, + builder.saksbehId, + builder.uforeGrad, + builder.kravhaverId, + builder.delytelseId, + builder.bostedsenhet, + builder.skykldnerId, + builder.klassekode, + builder.klasseKodeBeskrivelse, + builder.typeKlasse, + builder.typeKlasseBeskrivelse, + builder.refunderesOrgNr); + } + + public static class Builder { + private String faktiskFom; + private String faktiskTom; + private String kontoStreng; + private String behandlingskode; + private BigDecimal belop; + private long trekkVedtakId; + private String stonadId; + private String korrigering; + private boolean tilbakeforing; + private BigInteger linjeId; + private BigDecimal sats; + private String typeSats; + private BigDecimal antallSats; + private String saksbehId; + private BigInteger uforeGrad; + private String kravhaverId; + private String delytelseId; + private String bostedsenhet; + private String skykldnerId; + private String klassekode; + private String klasseKodeBeskrivelse; + private String typeKlasse; + private String typeKlasseBeskrivelse; + private String refunderesOrgNr; + + public Builder() { + } + + public Builder faktiskFom(String faktiskFom) { + this.faktiskFom = faktiskFom; + return this; + } + + public Builder faktiskTom(String faktiskTom) { + this.faktiskTom = faktiskTom; + return this; + } + + public Builder kontoStreng(String kontoStreng) { + this.kontoStreng = kontoStreng; + return this; + } + + public Builder behandlingskode(String behandlingskode) { + this.behandlingskode = behandlingskode; + return this; + } + + public Builder belop(BigDecimal belop) { + this.belop = belop; + return this; + } + + public Builder trekkVedtakId(long trekkVedtakId) { + this.trekkVedtakId = trekkVedtakId; + return this; + } + + public Builder stonadId(String stonadId) { + this.stonadId = stonadId; + return this; + } + + public Builder korrigering(String korrigering) { + this.korrigering = korrigering; + return this; + } + + public Builder tilbakeforing(boolean tilbakeforing) { + this.tilbakeforing = tilbakeforing; + return this; + } + + public Builder linjeId(BigInteger linjeId) { + this.linjeId = linjeId; + return this; + } + + public Builder sats(BigDecimal sats) { + this.sats = sats; + return this; + } + + public Builder typeSats(String typeSats) { + this.typeSats = typeSats; + return this; + } + + public Builder antallSats(BigDecimal antallSats) { + this.antallSats = antallSats; + return this; + } + + public Builder saksbehId(String saksbehId) { + this.saksbehId = saksbehId; + return this; + } + + public Builder uforeGrad(BigInteger uforeGrad) { + this.uforeGrad = uforeGrad; + return this; + } + + public Builder kravhaverId(String kravhaverId) { + this.kravhaverId = kravhaverId; + return this; + } + + public Builder delytelseId(String delytelseId) { + this.delytelseId = delytelseId; + return this; + } + + public Builder bostedsenhet(String bostedsenhet) { + this.bostedsenhet = bostedsenhet; + return this; + } + + public Builder skykldnerId(String skykldnerId) { + this.skykldnerId = skykldnerId; + return this; + } + + public Builder klassekode(String klassekode) { + this.klassekode = klassekode; + return this; + } + + public Builder klasseKodeBeskrivelse(String klasseKodeBeskrivelse) { + this.klasseKodeBeskrivelse = klasseKodeBeskrivelse; + return this; + } + + public Builder typeKlasse(String typeKlasse) { + this.typeKlasse = typeKlasse; + return this; + } + + public Builder typeKlasseBeskrivelse(String typeKlasseBeskrivelse) { + this.typeKlasseBeskrivelse = typeKlasseBeskrivelse; + return this; + } + + public Builder refunderesOrgNr(String refunderesOrgNr) { + this.refunderesOrgNr = refunderesOrgNr; + return this; + } + + public BeregningStoppnivåDetaljerDto build() throws IllegalStateException { + return new BeregningStoppnivåDetaljerDto(this); + } + } +} diff --git "a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245Dto.java" "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245Dto.java" new file mode 100644 index 00000000..159e1276 --- /dev/null +++ "b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningStoppniv\303\245Dto.java" @@ -0,0 +1,120 @@ +package no.nav.foreldrepenger.kontrakter.simulering.respons; + +import java.math.BigInteger; +import java.util.List; +import java.util.Optional; + +public record BeregningStoppnivåDto(String kodeFagomraade, + BigInteger stoppNivaaId, + String behandlendeEnhet, + long oppdragsId, + String fagsystemId, + String kid, + String utbetalesTilId, + String utbetalesTilNavn, + String bilagsType, + String forfall, + boolean feilkonto, + List beregningStoppnivaaDetaljer) { + + public BeregningStoppnivåDto { + beregningStoppnivaaDetaljer = Optional.ofNullable(beregningStoppnivaaDetaljer).orElse(List.of()); + } + + private BeregningStoppnivåDto(Builder builder) { + this(builder.kodeFagomraade, + builder.stoppNivaaId, + builder.behandlendeEnhet, + builder.oppdragsId, + builder.fagsystemId, + builder.kid, + builder.utbetalesTilId, + builder.utbetalesTilNavn, + builder.bilagsType, + builder.forfall, + builder.feilkonto, + builder.beregningStoppnivaaDetaljer); + } + + public static class Builder { + private String kodeFagomraade; + private BigInteger stoppNivaaId; + private String behandlendeEnhet; + private long oppdragsId; + private String fagsystemId; + private String kid; + private String utbetalesTilId; + private String utbetalesTilNavn; + private String bilagsType; + private String forfall; + private boolean feilkonto; + private List beregningStoppnivaaDetaljer; + + public Builder() { + } + + public Builder kodeFagomraade(String kodeFagomraade) { + this.kodeFagomraade = kodeFagomraade; + return this; + } + + public Builder stoppNivaaId(BigInteger stoppNivaaId) { + this.stoppNivaaId = stoppNivaaId; + return this; + } + + public Builder behandlendeEnhet(String behandlendeEnhet) { + this.behandlendeEnhet = behandlendeEnhet; + return this; + } + + public Builder oppdragsId(long oppdragsId) { + this.oppdragsId = oppdragsId; + return this; + } + + public Builder fagsystemId(String fagsystemId) { + this.fagsystemId = fagsystemId; + return this; + } + + public Builder kid(String kid) { + this.kid = kid; + return this; + } + + public Builder utbetalesTilId(String utbetalesTilId) { + this.utbetalesTilId = utbetalesTilId; + return this; + } + + public Builder utbetalesTilNavn(String utbetalesTilNavn) { + this.utbetalesTilNavn = utbetalesTilNavn; + return this; + } + + public Builder bilagsType(String bilagsType) { + this.bilagsType = bilagsType; + return this; + } + + public Builder forfall(String forfall) { + this.forfall = forfall; + return this; + } + + public Builder feilkonto(boolean feilkonto) { + this.feilkonto = feilkonto; + return this; + } + + public Builder beregningStoppnivaaDetaljer(List beregningStoppnivaaDetaljer) { + this.beregningStoppnivaaDetaljer = beregningStoppnivaaDetaljer; + return this; + } + + public BeregningStoppnivåDto build() throws IllegalStateException { + return new BeregningStoppnivåDto(this); + } + } +} diff --git a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningsPeriodeDto.java b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningsPeriodeDto.java similarity index 86% rename from vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningsPeriodeDto.java rename to vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningsPeriodeDto.java index 7b464a49..a045abe9 100644 --- a/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/BeregningsPeriodeDto.java +++ b/vl-kontrakt-fp-ws-proxy/src/main/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningsPeriodeDto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.kontrakter.simulering; +package no.nav.foreldrepenger.kontrakter.simulering.respons; import java.util.List; import java.util.Optional; diff --git a/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDtoSeraliseringDeseraliseringTest.java b/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDtoSeraliseringDeseraliseringTest.java new file mode 100644 index 00000000..7c4fe2b9 --- /dev/null +++ b/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/respons/BeregningDtoSeraliseringDeseraliseringTest.java @@ -0,0 +1,171 @@ +package no.nav.foreldrepenger.kontrakter.simulering.respons; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import no.nav.foreldrepenger.kontrakter.simulering.util.TestJsonMapper; + +class BeregningDtoSeraliseringDeseraliseringTest { + private static final Logger LOG = LoggerFactory.getLogger(BeregningDtoSeraliseringDeseraliseringTest.class); + private static ObjectMapper mapper = TestJsonMapper.getMapper(); + + @Test + void beregningDtoSeraliseringDeseraliseringRoundTripTest() { + test(lagBeregningDto()); + } + + @Test + void beregningDtoDeseraliseringKonsistensTest() throws JsonProcessingException { + var beregningDto = lagBeregningDto(); + var seralisertBeregningDto = """ + { + "gjelderId" : "123456789", + "gjelderNavn" : "Navn", + "datoBeregnet" : "2018-10-10", + "kodeFaggruppe" : "DUMMY", + "beregningsPeriode" : [ { + "periodeFom" : "dato", + "periodeTom" : "dato", + "beregningStoppnivaa" : [ { + "kodeFagomraade" : "FP", + "stoppNivaaId" : 2563, + "behandlendeEnhet" : "8052", + "oppdragsId" : 1234, + "fagsystemId" : "1", + "kid" : "123456789", + "utbetalesTilId" : "12345678910", + "utbetalesTilNavn" : "Nav Navesens", + "bilagsType" : "U", + "forfall" : "2020-09-12", + "feilkonto" : false, + "beregningStoppnivaaDetaljer" : [ { + "faktiskFom" : "2018-09-01", + "faktiskTom" : "2019-09-31", + "kontoStreng" : "12414123", + "behandlingskode" : "2", + "belop" : 52231.51, + "trekkVedtakId" : 0, + "stonadId" : "2018-12-12", + "tilbakeforing" : false, + "linjeId" : 23, + "typeSats" : "DAG", + "delytelseId" : "8123", + "bostedsenhet" : "8021" + } ] + }, { + "kodeFagomraade" : "FP", + "stoppNivaaId" : 2563, + "behandlendeEnhet" : "8052", + "oppdragsId" : 1234, + "fagsystemId" : "1", + "kid" : "123456789", + "utbetalesTilId" : "12345678910", + "utbetalesTilNavn" : "Nav Navesens", + "bilagsType" : "U", + "forfall" : "2020-09-12", + "feilkonto" : false, + "beregningStoppnivaaDetaljer" : [ { + "faktiskFom" : "2018-09-01", + "faktiskTom" : "2019-09-31", + "kontoStreng" : "12414123", + "behandlingskode" : "2", + "belop" : 52231.51, + "trekkVedtakId" : 0, + "stonadId" : "2018-12-12", + "tilbakeforing" : false, + "linjeId" : 23, + "typeSats" : "DAG", + "delytelseId" : "8123", + "bostedsenhet" : "8021" + } ] + } ] + } ] + } + """; + BeregningDto beregningDto1 = mapper.readValue(seralisertBeregningDto, BeregningDto.class); + assertThat(beregningDto).isEqualTo(beregningDto1); + } + + private static BeregningDto lagBeregningDto() { + var beregningStoppnivåDetalj = new BeregningStoppnivåDetaljerDto.Builder() + .faktiskFom("2018-09-01") + .faktiskTom("2019-09-31") + .kontoStreng("12414123") + .behandlingskode("2") + .belop(BigDecimal.valueOf(52_231.51)) + .trekkVedtakId(0L) + .stonadId("2018-12-12") + .tilbakeforing(false) + .linjeId(BigInteger.valueOf(23)) + .typeSats("DAG") + .delytelseId("8123") + .bostedsenhet("8021") + .build(); + var beregningStoppnivåDto = new BeregningStoppnivåDto.Builder() + .kodeFagomraade("FP") + .stoppNivaaId(BigInteger.valueOf(2563)) + .behandlendeEnhet("8052") + .oppdragsId(1234L) + .fagsystemId("1") + .kid("123456789") + .utbetalesTilId("12345678910") + .utbetalesTilNavn("Nav Navesens") + .bilagsType("U") + .forfall("2020-09-12") + .feilkonto(false) + .beregningStoppnivaaDetaljer(List.of(beregningStoppnivåDetalj)) + .build(); + var beregningDto = new BeregningDto.Builder() + .gjelderId("123456789") + .gjelderNavn("Navn") + .datoBeregnet("2018-10-10") + .kodeFaggruppe("DUMMY") + .beregningsPeriode(List.of(new BeregningsPeriodeDto("dato", "dato", List.of(beregningStoppnivåDto, beregningStoppnivåDto)))) + .build(); + return beregningDto; + } + + + protected static void test(Object obj) { + test(obj, true); + } + + protected static void test(Object obj, boolean log) { + try { + if (log) { + LOG.info("{}", obj); + } + + String serialized = serialize(obj); + if (log) { + LOG.info("Serialized as {}", serialized); + } + + Object deserialized = mapper.readValue(serialized, obj.getClass()); + if (log) { + LOG.info("{}", deserialized); + } + + Assertions.assertEquals(obj, deserialized); + } catch (Exception var4) { + LOG.error("Oops", var4); + Assertions.fail(obj.getClass().getSimpleName() + " failed"); + } + + } + + private static String serialize(Object obj) throws JsonProcessingException { + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); + } +} diff --git a/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/util/TestJsonMapper.java b/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/util/TestJsonMapper.java new file mode 100644 index 00000000..e98ad0fb --- /dev/null +++ b/vl-kontrakt-fp-ws-proxy/src/test/java/no/nav/foreldrepenger/kontrakter/simulering/util/TestJsonMapper.java @@ -0,0 +1,28 @@ +package no.nav.foreldrepenger.kontrakter.simulering.util; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; + +public class TestJsonMapper { + + private static final ObjectMapper OM; + + static { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new Jdk8Module()); + objectMapper.registerModule(new JavaTimeModule()); + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); + OM = objectMapper; + } + + public static ObjectMapper getMapper() { + return OM; + } + +}