diff --git a/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java b/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java
index 080e2a876..011ca64cc 100644
--- a/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java
+++ b/felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java
@@ -12,11 +12,11 @@ private Tid() {
// hidden
}
- public static LocalDate fomEllerBegynnelse(LocalDate fom) {
+ public static LocalDate fomEllerMin(LocalDate fom) {
return fom != null ? fom : TIDENES_BEGYNNELSE;
}
- public static LocalDate tomEllerEndetid(LocalDate tom) {
+ public static LocalDate tomEllerMax(LocalDate tom) {
return tom != null ? tom : TIDENES_ENDE;
}
}
diff --git a/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java b/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java
index a045e6e20..891576127 100644
--- a/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java
+++ b/felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java
@@ -55,6 +55,15 @@ public class InputValideringRegex {
*/
public static final String FRITEKST = REGEXP_START + TEGN_FRITEKST + REGEXP_SLUTT;
+ /**
+ * Bruk dette mønsteret for å validere fritekst til brev.
+ *
+ * Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante.
+ *
+ * Godtar ikke større-enn og mindre-enn tegn da disse kan misbrukes til å gjøre XSS-angrep
+ */
+ public static final String FRITEKST_BREV = REGEXP_START + TEGN_FRITEKST + "\\p{Graph}\\p{M}\\p{N}\\p{P}\\p{Zl}\\p{Zp}" + REGEXP_SLUTT;
+
/**
* Bruk dette mønsteret for å validere BASE64 "URL and Filename safe".
*
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java
index 945f98eec..58eba5881 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/AbstractInfotrygdGrunnlag.java
@@ -1,23 +1,19 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import jakarta.ws.rs.core.UriBuilder;
import no.nav.vedtak.exception.TekniskException;
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag;
import no.nav.vedtak.felles.integrasjon.rest.RestClient;
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
-// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.STS_CC eller AZURE_CC
+// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC
public abstract class AbstractInfotrygdGrunnlag implements InfotrygdGrunnlag {
protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdGrunnlag.class);
@@ -33,32 +29,6 @@ protected AbstractInfotrygdGrunnlag(RestClient client) {
this.restConfig = RestConfig.forClient(this.getClass());
}
- @Override
- public List hentGrunnlag(String fnr, LocalDate fom, LocalDate tom) {
- try {
- var path = UriBuilder.fromUri(restConfig.endpoint())
- .queryParam("fnr", fnr)
- .queryParam("fom", konverter(fom))
- .queryParam("tom", konverter(tom))
- .build();
- return restClient.sendReturnList(RestRequest.newGET(path, restConfig), Grunnlag.class);
- } catch (Exception e) {
- throw new TekniskException("FP-180125",
- String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.",
- restConfig.endpoint()), e);
- }
- }
-
- @Override
- public List hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom) {
- try {
- return hentGrunnlag(fnr, fom, tom);
- } catch (Exception e) {
- LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e);
- return Collections.emptyList();
- }
- }
-
@Override
public List hentGrunnlag(GrunnlagRequest request) {
try {
@@ -82,17 +52,4 @@ public List hentGrunnlagFailSoft(GrunnlagRequest request) {
}
}
- private static String konverter(LocalDate dato) {
- var brukDato = Optional.ofNullable(dato).orElseGet(LocalDate::now);
- return brukDato.format(DateTimeFormatter.ISO_LOCAL_DATE);
- }
-
- protected RestClient getRestClient() {
- return restClient;
- }
-
- protected RestConfig getRestConfig() {
- return restConfig;
- }
-
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java
index d647becaf..7fa01c3da 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java
@@ -1,18 +1,11 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag;
-import java.time.LocalDate;
import java.util.List;
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag;
public interface InfotrygdGrunnlag {
- /*
- * Klassisk GET
- */
- List hentGrunnlag(String fnr, LocalDate fom, LocalDate tom);
-
- List hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom);
/*
* POST
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java
index ae847bb12..9543b9233 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Arbeidskategori.java
@@ -1,5 +1,10 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
-public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) {
+public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) implements InfotrygdKode {
+
+ @Override
+ public String getKode() {
+ return kode().getKode();
+ }
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java
index 52f41ae40..0f371456e 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Behandlingstema.java
@@ -1,4 +1,4 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
-public record Behandlingstema(BehandlingstemaKode kode, String termnavn) {
+public record Behandlingstema(BehandlingstemaKode kode, String termnavn) implements InfotrygdKode {
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java
new file mode 100644
index 000000000..6a5bcdfc9
--- /dev/null
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/InfotrygdKode.java
@@ -0,0 +1,13 @@
+package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
+
+public interface InfotrygdKode {
+
+ Enum> kode();
+
+ default String getKode() {
+ return kode() != null ? kode().name() : null;
+ }
+
+ String termnavn();
+
+}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java
index 8b8c04e38..b722c925f 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Inntektsperiode.java
@@ -1,5 +1,5 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
-public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) {
+public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) implements InfotrygdKode {
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java
index f01fc93cd..ad08a4be8 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Status.java
@@ -1,4 +1,4 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
-public record Status(StatusKode kode, String termnavn) {
+public record Status(StatusKode kode, String termnavn) implements InfotrygdKode {
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java
index 4ca3c934c..30538674e 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/v1/respons/Tema.java
@@ -1,5 +1,5 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
-public record Tema(TemaKode kode, String termnavn) {
+public record Tema(TemaKode kode, String termnavn) implements InfotrygdKode {
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java
new file mode 100644
index 000000000..6eb5b9f43
--- /dev/null
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/AbstractInfotrygdSaker.java
@@ -0,0 +1,56 @@
+package no.nav.vedtak.felles.integrasjon.infotrygd.saker;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import no.nav.vedtak.exception.TekniskException;
+import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest;
+import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak;
+import no.nav.vedtak.felles.integrasjon.rest.RestClient;
+import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
+import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
+
+// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC
+public abstract class AbstractInfotrygdSaker implements InfotrygdSaker {
+ protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdSaker.class);
+
+ private final RestClient restClient;
+ private final RestConfig restConfig;
+
+ protected AbstractInfotrygdSaker() {
+ this(RestClient.client());
+ }
+
+ protected AbstractInfotrygdSaker(RestClient client) {
+ this.restClient = client;
+ this.restConfig = RestConfig.forClient(this.getClass());
+ }
+
+ @Override
+ public List hentSaker(GrunnlagRequest request) {
+ try {
+ var rrequest = RestRequest.newPOSTJson(request, restConfig.endpoint(), restConfig);
+ var resultat = restClient.send(rrequest, InfotrygdSak[].class);
+ return Arrays.asList(resultat);
+ } catch (Exception e) {
+ throw new TekniskException("FP-180125",
+ String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.",
+ restConfig.endpoint()), e);
+ }
+ }
+
+ @Override
+ public List hentSakerFailSoft(GrunnlagRequest request) {
+ try {
+ return hentSaker(request);
+ } catch (Exception e) {
+ LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e);
+ return Collections.emptyList();
+ }
+ }
+
+}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java
index f3183681c..05da09346 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/InfotrygdSaker.java
@@ -1,11 +1,14 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.saker;
-import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.Saker;
+import java.util.List;
-import java.time.LocalDate;
+import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest;
+import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak;
public interface InfotrygdSaker {
- Saker getSaker(String fnr, LocalDate fom);
+ List hentSaker(GrunnlagRequest request);
+
+ List hentSakerFailSoft(GrunnlagRequest request);
}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java
new file mode 100644
index 000000000..323307be4
--- /dev/null
+++ b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/InfotrygdSak.java
@@ -0,0 +1,40 @@
+package no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons;
+
+import java.time.LocalDate;
+
+public record InfotrygdSak(LocalDate iverksatt, SakResultat resultat, LocalDate registrert, Saksnummer sakId, LocalDate mottatt,
+ SakType type, LocalDate vedtatt, SakValg valg, SakUndervalg undervalg, SakNivå nivaa) {
+
+
+
+ public String saksBlokkNummer() {
+ return sakId().blokk() + nrFra(sakId().nr());
+ }
+
+ public String saksNummerBlokk() {
+ return nrFra(sakId().nr()) + sakId().blokk();
+ }
+
+ private static String nrFra(int nr) {
+ return nr < 10 ? "0" + nr : String.valueOf(nr);
+ }
+
+
+ public record Saksnummer(String blokk, int nr) { }
+
+ public interface InfotrygdKode {
+ String kode();
+ String termnavn();
+ }
+
+ public record SakValg(String kode, String termnavn) implements InfotrygdKode { }
+
+ public record SakUndervalg(String kode, String termnavn) implements InfotrygdKode { }
+
+ public record SakNivå(String kode, String termnavn) implements InfotrygdKode { }
+
+ public record SakType(String kode, String termnavn) implements InfotrygdKode { }
+
+ public record SakResultat(String kode, String termnavn) implements InfotrygdKode { }
+
+}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java b/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java
deleted file mode 100644
index 4069d01e4..000000000
--- a/integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons;
-
-import static com.fasterxml.jackson.annotation.Nulls.AS_EMPTY;
-
-import java.time.LocalDate;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonAlias;
-import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonSetter;
-
-public record Saker(String info, @JsonProperty("saker") @JsonSetter(nulls = AS_EMPTY) List saker,
- @JsonAlias("apneSakerMedLopendeUtbetaling") @JsonSetter(nulls = AS_EMPTY) List løpendeSaker,
- AvsluttedeSaker avsluttedeSaker, @JsonProperty("ikkeStartet") @JsonSetter(nulls = AS_EMPTY) List ikkeStartet) {
-
- public record Sak(LocalDate iverksatt, SakResultat resultat, Saksnummer sakId, String status, SakType type, LocalDate vedtatt) {
-
- @JsonIgnore
- public String getSaksnummer() {
- return sakId().blokk() + nrFra(sakId().nr());
- }
-
- private static String nrFra(int nr) {
- return nr < 10 ? "0" + nr : String.valueOf(nr);
- }
-
- public enum SakResultat {
- @JsonEnumDefaultValue UKJENT,
- A,
- AK,
- AV,
- DI,
- DT,
- FB,
- FI,
- H,
- HB,
- I,
- IN,
- IS,
- IT,
- MO,
- MT,
- NB,
- O,
- PA,
- R,
- SB,
- TB,
- TH,
- TO,
- UB,
- Ø;
- }
-
- public enum SakType {
- @JsonEnumDefaultValue UKJENT,
- S,
- R,
- K,
- A
- }
-
- public record Saksnummer(String blokk, int nr) {
- }
- }
-
- public record AvsluttedeSaker(LocalDate fraOgMed, @JsonProperty("saker") @JsonSetter(nulls = AS_EMPTY) List saker) {
- public record AvsluttetSak(LocalDate iverksatt, LocalDate stoppdato,
- @JsonProperty("utbetalinger") @JsonSetter(nulls = AS_EMPTY) List utbetalinger) {
- }
- }
-
- public record Utbetaling(int gradering, LocalDate utbetaltFom, LocalDate utbetaltTom) {
- }
-
- public record IkkeStartetSak(LocalDate iverksatt, LocalDate registrert) {
- }
-
- public record LøpendeSak(LocalDate iverksatt, @JsonProperty("utbetalinger") @JsonSetter(nulls = AS_EMPTY) List utbetalinger) {
- }
-}
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java
index b0caed210..81ae90674 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java
+++ b/integrasjon/infotrygd-grunnlag-klient/src/test/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/SerializationTest.java
@@ -1,68 +1,38 @@
package no.nav.vedtak.felles.integrasjon.infotrygd.saker;
-import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.Saker;
-import no.nav.vedtak.mapper.json.DefaultJsonMapper;
-
-import org.junit.jupiter.api.Test;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.nio.file.Files.readAllBytes;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import java.nio.file.Paths;
import java.time.LocalDate;
+import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
-import static java.nio.charset.StandardCharsets.UTF_8;
-import static java.nio.file.Files.readAllBytes;
-import static java.util.stream.Collectors.toList;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.junit.jupiter.api.Test;
-class SerializationTest {
+import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak;
+import no.nav.vedtak.mapper.json.DefaultJsonMapper;
- @Test
- void saksnummerTest() {
- test(saksnummer(42));
- }
+class SerializationTest {
@Test
void sakTest() {
test(enSak(1));
}
-
- @Test
- void utbetalingTest() {
- test(utbetaling(0));
- }
-
- @Test
- void åpenSakTest() {
- test(åpenSak(4));
- }
-
- @Test
- void avsluttedeSakerTest() {
- test(avsluttedeSaker(4));
- }
-
- @Test
- void avsluttedeSakTest() {
- test(enAvsluttetSak(4));
- }
-
@Test
void sakResponsTest() {
- test(sakRespons(2));
+ test(sakRespons(2), true);
}
@Test
void faktiskResponsTest() throws Exception {
- testJson(jsonFra("rest/svprespons.json"), Saker.class);
+ testJson(jsonFra("rest/svprespons.json"), true);
}
- private static void testJson(String json, Class> clazz) {
- testJson(json, clazz, true);
- }
-
- private static void testJson(String json, Class> clazz, boolean log) {
- var deser = DefaultJsonMapper.fromJson(json, clazz);
+ private static void testJson(String json, boolean log) {
+ var deser = Arrays.stream(DefaultJsonMapper.fromJson(json, InfotrygdSak[].class)).toList();
if (log) {
System.out.println("##");
System.out.println(json);
@@ -70,13 +40,13 @@ private static void testJson(String json, Class> clazz, boolean log) {
}
}
- private static void test(Object object) {
- test(object, true);
+ private static void test(InfotrygdSak object) {
+ test(List.of(object), true);
}
- private static void test(Object object, boolean log) {
+ private static void test(List object, boolean log) {
String ser = write(object);
- var deser = DefaultJsonMapper.fromJson(ser, object.getClass());
+ var deser = Arrays.stream(DefaultJsonMapper.fromJson(ser, InfotrygdSak[].class)).toList();
if (log) {
System.out.println("##");
System.out.println("Før serialisering: " + object);
@@ -90,60 +60,26 @@ private static String write(Object object) {
return DefaultJsonMapper.toJson(object);
}
- private static Saker.Sak.Saksnummer saksnummer(int n) {
- return new Saker.Sak.Saksnummer("B", n);
- }
-
- private static Saker.Sak enSak(int n) {
- return new Saker.Sak(plusDays(n), Saker.Sak.SakResultat.FB, saksnummer(n), "FI", Saker.Sak.SakType.S, plusDays(1));
- }
-
- private static Saker.LøpendeSak åpenSak(int n) {
- return new Saker.LøpendeSak(plusDays(n), utbetalinger(n));
- }
-
- private static Saker.AvsluttedeSaker avsluttedeSaker(int n) {
- return new Saker.AvsluttedeSaker(plusDays(n), alleAvsluttedeSaker(n));
- }
-
- private static Saker.AvsluttedeSaker.AvsluttetSak enAvsluttetSak(int n) {
- return new Saker.AvsluttedeSaker.AvsluttetSak(plusDays(n), plusDays(n + 1), utbetalinger(n));
- }
-
- private static Saker.IkkeStartetSak enIkkeStartetSak(int n) {
- return new Saker.IkkeStartetSak(plusDays(n), plusDays(n + 1));
- }
-
- private static List alleAvsluttedeSaker(int n) {
- return IntStream.range(0, n).boxed().map(SerializationTest::enAvsluttetSak).toList();
- }
-
- private static List utbetalinger(int n) {
- return IntStream.range(0, n).boxed().map(SerializationTest::utbetaling).toList();
+ private static InfotrygdSak.Saksnummer saksnummer(int n) {
+ return new InfotrygdSak.Saksnummer("B", n);
}
-
- private static List åpneSaker(int n) {
- return IntStream.range(0, n).boxed().map(SerializationTest::åpenSak).toList();
+ private static InfotrygdSak enSak(int n) {
+ return new InfotrygdSak(plusDays(n), new InfotrygdSak.SakResultat("FB", "ferdig") , plusDays(-10),
+ saksnummer(n), null, new InfotrygdSak.SakType("S", "søknad"), plusDays(1),
+ new InfotrygdSak.SakValg("FØ", "fødsel"), new InfotrygdSak.SakUndervalg(" ", "annet"),
+ new InfotrygdSak.SakNivå("TK", "Trygdekontor"));
}
- private static List saker(int n) {
+ private static List saker(int n) {
return IntStream.range(0, n).boxed().map(SerializationTest::enSak).toList();
}
- private static List ikkeStartedeSaker(int n) {
- return IntStream.range(0, n).boxed().map(SerializationTest::enIkkeStartetSak).collect(toList());
- }
-
- private static Saker.Utbetaling utbetaling(int n) {
- return new Saker.Utbetaling(80, plusDays(n), plusDays(n + 1));
- }
-
private static LocalDate plusDays(int n) {
return LocalDate.now().plusDays(n);
}
- private static Saker sakRespons(int n) {
- return new Saker("hello", saker(n), åpneSaker(n), avsluttedeSaker(n), ikkeStartedeSaker(n));
+ private static List sakRespons(int n) {
+ return saker(n);
}
String jsonFra(String fil) throws Exception {
diff --git a/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json b/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json
index 1be1d358a..5f36199a0 100644
--- a/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json
+++ b/integrasjon/infotrygd-grunnlag-klient/src/test/resources/rest/svprespons.json
@@ -1,109 +1,101 @@
-{
- "info": null,
- "saker": [
- {
- "sakId": {
- "blokk": "B",
- "nr": 1
- },
- "type": "S",
- "status": "FB",
- "resultat": "I",
- "vedtatt": "2012-10-08",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 4
- },
- "type": "S",
- "status": "FB",
- "resultat": "I",
- "vedtatt": "2012-12-12",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 5
- },
- "type": "S",
- "status": "FB",
- "resultat": "HB",
- "vedtatt": "2012-12-14",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 7
- },
- "type": "S",
- "status": "FB",
- "resultat": "I",
- "vedtatt": "2014-09-18",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 8
- },
- "type": "S",
- "status": "FB",
- "resultat": "I",
- "vedtatt": "2014-12-04",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 9
- },
- "type": "S",
- "status": "FB",
- "resultat": "HB",
- "vedtatt": "2014-12-12",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 11
- },
- "type": "S",
- "status": "FB",
- "resultat": "I",
- "vedtatt": "2015-01-13",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 12
- },
- "type": "S",
- "status": "FB",
- "resultat": "HB",
- "vedtatt": "2015-01-30",
- "iverksatt": null
- },
- {
- "sakId": {
- "blokk": "B",
- "nr": 13
- },
- "type": "S",
- "status": "FB",
- "resultat": "HB",
- "vedtatt": "2015-02-10",
- "iverksatt": null
- }
- ],
- "apneSakerMedLopendeUtbetaling": [],
- "avsluttedeSaker": {
- "fraOgMed": "2018-11-07",
- "saker": []
- }
-}
\ No newline at end of file
+[
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 1
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "I", "termnavn": "ferdig" },
+ "registrert": "2012-01-02",
+ "vedtatt": "2012-10-08",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 4
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "I", "termnavn": "ferdig" },
+ "registrert": "2012-01-02",
+ "vedtatt": "2012-12-12",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 5
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "HB", "termnavn": "henlagt" },
+ "registrert": "2012-01-02",
+ "vedtatt": "2012-12-14",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 7
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "I", "termnavn": "ferdig" },
+ "registrert": "2014-01-02",
+ "vedtatt": "2014-09-18",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 8
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "I", "termnavn": "ferdig" },
+ "registrert": "2014-01-02",
+ "vedtatt": "2014-12-04",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 9
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "HB", "termnavn": "henlagt" },
+ "registrert": "2014-01-02",
+ "vedtatt": "2014-12-12",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 11
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "I", "termnavn": "ferdig" },
+ "registrert": "2015-01-02",
+ "vedtatt": "2015-01-13",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 12
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "HB", "termnavn": "henlagt" },
+ "registrert": "2015-01-02",
+ "vedtatt": "2015-01-30",
+ "iverksatt": null
+ },
+ {
+ "sakId": {
+ "blokk": "B",
+ "nr": 13
+ },
+ "type": { "kode": "S", "termnavn": "Søknad" },
+ "resultat": { "kode": "HB", "termnavn": "henlagt" },
+ "registrert": "2015-01-02",
+ "vedtatt": "2015-02-10",
+ "iverksatt": null
+ }
+]