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;
+ }
+
+}