Skip to content

Commit 1c5e695

Browse files
lagt på mer serialisering og deserialisering tester, oppdatert jakarta (#229)
* lagt på mer serialisering og deserialisering tester, oppdatert jakarta * fikset linjer
1 parent 0da5fc7 commit 1c5e695

File tree

5 files changed

+90
-49
lines changed

5 files changed

+90
-49
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
<dependency>
6767
<groupId>org.glassfish</groupId>
6868
<artifactId>jakarta.el</artifactId>
69-
<version>3.0.3</version>
69+
<version>3.0.4</version>
7070
</dependency>
7171
<dependency>
7272
<groupId>com.fasterxml.jackson</groupId>

soknad/src/main/java/no/nav/k9/søknad/JsonUtils.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
package no.nav.k9.søknad;
22

3+
import java.io.IOException;
4+
import java.util.TimeZone;
5+
36
import com.fasterxml.jackson.core.JsonGenerator;
47
import com.fasterxml.jackson.core.JsonProcessingException;
58
import com.fasterxml.jackson.core.util.DefaultIndenter;
69
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
710
import com.fasterxml.jackson.databind.DeserializationFeature;
11+
import com.fasterxml.jackson.databind.MapperFeature;
812
import com.fasterxml.jackson.databind.ObjectMapper;
913
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
1014
import com.fasterxml.jackson.databind.SerializationFeature;
1115
import com.fasterxml.jackson.databind.node.ObjectNode;
1216
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
1317
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
18+
1419
import no.nav.k9.søknad.ytelse.omsorgspenger.v1.OmsorgspengerUtbetaling;
1520
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn;
1621

17-
import java.io.IOException;
18-
import java.util.TimeZone;
19-
2022
public final class JsonUtils {
2123

2224
private static final ObjectMapper objectMapper = createObjectMapper();
@@ -60,7 +62,8 @@ private static final ObjectMapper createObjectMapper() {
6062
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
6163
.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true)
6264
.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY)
63-
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
65+
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
66+
.enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY);
6467

6568
objectMapper.registerSubtypes(OmsorgspengerUtbetaling.class, PleiepengerSyktBarn.class);
6669

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

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,19 @@
88

99
public class SøknadJsonEksempel {
1010

11-
private static String jsonFromFile(String filename) {
12-
try {
13-
return Files.readString(Path.of("src/test/resources/ytelse/psb/" + filename));
14-
} catch (IOException e) {
15-
throw new RuntimeException(e);
16-
}
17-
}
18-
19-
public static Søknad komplettSøknadJson() {
20-
return Søknad.SerDes.deserialize(jsonFromFile("komplett-søknad.json"));
21-
}
22-
23-
public static Søknad minimumSøknadJson() {
24-
return Søknad.SerDes.deserialize(jsonFromFile("minimum-søknad.json"));
25-
}
26-
27-
public static Søknad komplettGammelVersjonSøknadJson() {
28-
return Søknad.SerDes.deserialize(jsonFromFile("5.1.33/komplett-søknad.json"));
29-
}
30-
31-
public static Søknad minimumGammelVersjonSøknadJson() {
32-
return Søknad.SerDes.deserialize(jsonFromFile("5.1.33/minimum-søknad.json"));
33-
}
34-
3511
public static Søknad utenPeriodisertDataJson() {
3612
return Søknad.SerDes.deserialize(jsonFromFile("uten-periodisert-data.json"));
3713
}
3814

39-
public static Søknad søknadMedEndring() {
40-
return Søknad.SerDes.deserialize(jsonFromFile("søknad-med-endring.json"));
41-
}
42-
4315
public static Søknad søknadMedNullFeil() {
4416
return Søknad.SerDes.deserialize(jsonFromFile("søknad-null-feil.json"));
4517
}
18+
19+
private static String jsonFromFile(String filename) {
20+
try {
21+
return Files.readString(Path.of("src/test/resources/ytelse/psb/" + filename));
22+
} catch (IOException e) {
23+
throw new RuntimeException(e);
24+
}
25+
}
4626
}

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

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,63 @@
22

33
import static no.nav.k9.søknad.ytelse.psb.v1.ValiderUtil.verifyIngenFeil;
44

5+
import java.io.IOException;
6+
import java.nio.file.Files;
7+
import java.nio.file.Path;
8+
59
import org.junit.jupiter.api.Test;
610

7-
import no.nav.k9.søknad.ytelse.psb.SøknadJsonEksempel;
11+
import no.nav.k9.søknad.Søknad;
812

913
class FraJsonTest {
1014

1115
@Test
12-
public void komplettSøknadSkalIkkeHaValideringsfeil() {
13-
var søknad = SøknadJsonEksempel.komplettSøknadJson();
14-
verifyIngenFeil(søknad);
16+
public void komplettSøknadJson() {
17+
jsonDeserializeSerializeTest("komplett-søknad.json");
1518
}
1619

1720
@Test
18-
public void minimumSøknadSkalIkkeHaValideringsfeil() {
19-
var søknad = SøknadJsonEksempel.minimumSøknadJson();
20-
verifyIngenFeil(søknad);
21+
public void minimumSøknadJson() {
22+
jsonDeserializeSerializeTest("minimum-søknad.json");
2123
}
2224

2325
@Test
24-
public void komplettSøknadGammelVersjonSkalIkkeHaValideringsfeil() {
25-
var søknad = SøknadJsonEksempel.komplettGammelVersjonSøknadJson();
26-
verifyIngenFeil(søknad);
26+
public void komplettGammelVersjonSøknadJson() {
27+
jsonDeserializeSerializeTest("5.1.33/komplett-søknad.json");
2728
}
2829

2930
@Test
30-
public void minimumSøknadGammelVersjonSkalIkkeHaValideringsfeil() {
31-
var søknad = SøknadJsonEksempel.minimumGammelVersjonSøknadJson();
32-
verifyIngenFeil(søknad);
31+
public void minimumGammelVersjonSøknadJson() {
32+
jsonDeserializeSerializeTest("5.1.33/minimum-søknad.json");
3333
}
3434

3535
@Test
36-
public void søknadMedEndringSkalIkkeHaFeil() {
37-
var søknad = SøknadJsonEksempel.søknadMedEndring();
38-
verifyIngenFeil(søknad, ((PleiepengerSyktBarn) søknad.getYtelse()).getEndringsperiode());
36+
public void søknadMedEndringJson() {
37+
var jsonSøknad = jsonFromFile("søknad-med-endring.json");
38+
var søknad = Søknad.SerDes.deserialize(jsonSøknad);
39+
verifyIngenFeil(søknad,((PleiepengerSyktBarn) søknad.getYtelse()).getEndringsperiode());
40+
41+
Søknad.SerDes.serialize(søknad);
42+
}
43+
44+
private void jsonDeserializeSerializeTest(String filname) {
45+
var jsonSøknad = jsonFromFile(filname);
46+
var søknad = Søknad.SerDes.deserialize(jsonSøknad);
47+
verifyIngenFeil(søknad);
48+
49+
var jsonSøknadSerialized = Søknad.SerDes.serialize(søknad);
50+
51+
//vil ikke funke før json filene er laget på nytt med Alphabetically order.
52+
//assertEquals(jsonSøknadSerialized, jsonSøknad);
53+
}
54+
55+
56+
private static String jsonFromFile(String filename) {
57+
try {
58+
return Files.readString(Path.of("src/test/resources/ytelse/psb/" + filename));
59+
} catch (IOException e) {
60+
throw new RuntimeException(e);
61+
}
3962
}
4063

4164
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package no.nav.k9.søknad.ytelse.psb.v1;
2+
3+
import static no.nav.k9.søknad.ytelse.psb.v1.ValiderUtil.verifyIngenFeil;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
6+
import java.time.LocalDate;
7+
8+
import org.junit.jupiter.api.Test;
9+
10+
import no.nav.k9.søknad.Søknad;
11+
import no.nav.k9.søknad.felles.type.Periode;
12+
import no.nav.k9.søknad.ytelse.psb.SøknadEksempel;
13+
import no.nav.k9.søknad.ytelse.psb.YtelseEksempel;
14+
15+
class SerializeAndDeserializeTest {
16+
17+
@Test
18+
public void komplettSøknadTest() {
19+
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(4));
20+
var utelands = new Periode(LocalDate.now().minusYears(1), LocalDate.now());
21+
var bosteder = new Periode(LocalDate.now().minusYears(1), LocalDate.now().plusWeeks(4));
22+
var lovbestemtferie = new Periode(LocalDate.now().plusWeeks(3), LocalDate.now().plusWeeks(4));
23+
24+
var ytelse = YtelseEksempel.komplettYtelseMedSøknadsperiode(
25+
søknadsperiode, lovbestemtferie, utelands, bosteder);
26+
var søknad = SøknadEksempel.søknad(ytelse);
27+
verifyIngenFeil(søknad);
28+
29+
var serializedSøknad = Søknad.SerDes.serialize(søknad);
30+
var deserilizedSøknad = Søknad.SerDes.deserialize(serializedSøknad);
31+
32+
verifyIngenFeil(deserilizedSøknad);
33+
assertEquals(Søknad.SerDes.serialize(deserilizedSøknad), serializedSøknad);
34+
}
35+
}

0 commit comments

Comments
 (0)