Skip to content

Commit c8f650f

Browse files
Endringsperiode serialisert i JSON (#187)
* Legger til feilende tester som viser at det ikke serialiseres i JSON. * Fikser så endringsperioder havner i JSON & at getSøknadsperiode() bruker rett endringsperioder.
1 parent 8b365f7 commit c8f650f

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/PleiepengerSyktBarn.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ public class PleiepengerSyktBarn implements Ytelse {
4242
@JsonProperty(value = "søknadsperiode", required = true)
4343
private List<@Valid Periode> søknadsperiode = new ArrayList<>();
4444

45-
@Valid
46-
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
47-
@JsonProperty(value = "endringsperiode", required = true)
48-
private List<@Valid Periode> endringsperiode = new ArrayList<>();
49-
5045
@Valid
5146
@JsonProperty(value = "trekkKravPerioder", required = true)
5247
private List<@Valid Periode> trekkKravPerioder = new ArrayList<>();
@@ -126,7 +121,7 @@ public Person getAnnenPart() {
126121
@Override
127122
public Periode getSøknadsperiode() {
128123
final List<Periode> perioder = new ArrayList<>(søknadsperiode);
129-
perioder.addAll(endringsperiode);
124+
perioder.addAll(getEndringsperiode());
130125

131126
final var fom = perioder
132127
.stream()
@@ -155,6 +150,7 @@ public Person getAnnenPart() {
155150
return this;
156151
}
157152

153+
@JsonProperty(value = "endringsperiode")
158154
public List<Periode> getEndringsperiode() {
159155
return EndringsperiodeKalkulator.getEndringsperiode(this);
160156
}
@@ -283,7 +279,4 @@ public Type getType() {
283279
public YtelseValidator getValidator() {
284280
return new PleiepengerSyktBarnYtelseValidator();
285281
}
286-
287-
288-
289282
}

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/EndringTest.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
import static org.assertj.core.api.Assertions.assertThat;
88

99
import java.time.LocalDate;
10+
import java.util.ArrayList;
1011
import java.util.List;
1112

13+
import com.fasterxml.jackson.databind.node.ArrayNode;
14+
import no.nav.k9.søknad.JsonUtils;
15+
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
1216
import org.junit.jupiter.api.Test;
1317

1418
import no.nav.k9.søknad.felles.type.Periode;
@@ -23,6 +27,7 @@ class EndringTest {
2327

2428
var psb = YtelseEksempel.komplettEndringssøknad(endringsperiode);
2529
verifyIngenFeil(psb, List.of(gyldigEndringsInterval));
30+
assertEndringsperioderIJson(psb);
2631
}
2732

2833
@Test
@@ -32,6 +37,7 @@ class EndringTest {
3237

3338
var psb = YtelseEksempel.standardYtelseMedEndring(søknadsperiode, endringsperiode);
3439
verifyIngenFeil(psb, List.of(endringsperiode));
40+
assertEndringsperioderIJson(psb);
3541
}
3642

3743
@Test
@@ -41,7 +47,7 @@ class EndringTest {
4147

4248
var psb = YtelseEksempel.standardYtelseMedEndring(søknadsperiode, endringsperiode);
4349
verifyIngenFeil(psb, List.of(endringsperiode));
44-
50+
assertEndringsperioderIJson(psb);
4551
}
4652

4753
@Test
@@ -56,6 +62,7 @@ class EndringTest {
5662
feilInneholderFeltOgFeilkode(feil, "uttak.perioder", "ugyldigPeriode");
5763
assertThat(feil).size().isEqualTo(1);
5864
assertThat(endringsperiodeList).isEqualTo(psb.getEndringsperiode());
65+
assertEndringsperioderIJson(psb);
5966
}
6067

6168
@Test
@@ -83,7 +90,8 @@ class EndringTest {
8390
var psb = YtelseEksempel.komplettYtelse(søknadsperiode);
8491

8592
var feil = verifyHarFeil(psb, List.of(new Periode(LocalDate.now().plusDays(2), LocalDate.now())));
86-
feilInneholderFeilkode(feil, "ugyldigPeriode"); }
93+
feilInneholderFeilkode(feil, "ugyldigPeriode");
94+
}
8795

8896
@Test
8997
public void kalkulertEndringsperiodeFinnerFlereSøknadsperioder() {
@@ -106,8 +114,20 @@ class EndringTest {
106114
assertThat(endringsperiode).contains(søknadsperiodeTo);
107115
assertThat(endringsperiode).contains(søknadsperiodeTre);
108116
assertThat(endringsperiode).contains(søknadsperiodeFire);
109-
110-
117+
assertEndringsperioderIJson(ytelse);
111118
}
112119

120+
private void assertEndringsperioderIJson(PleiepengerSyktBarn ytelse) {
121+
var endringsperioder = new ArrayList<Periode>();
122+
try {
123+
var jsonArray = (ArrayNode) JsonUtils.getObjectMapper()
124+
.readTree(JsonUtils.toString(ytelse))
125+
.get("endringsperiode");
126+
127+
jsonArray.forEach(jsonNode -> endringsperioder.add(new Periode(jsonNode.asText())));
128+
} catch (Exception ex) {
129+
throw new IllegalStateException("Feil ved sjekk på endringsperioder i JSON", ex);
130+
}
131+
assertThat(endringsperioder).containsExactlyElementsOf(ytelse.getEndringsperiode());
132+
}
113133
}

0 commit comments

Comments
 (0)