1+ package com.baeldung.kotlin.jackson
2+
3+ import org.junit.Test
4+ import kotlin.test.assertTrue
5+ import kotlin.test.assertFalse
6+ import kotlin.test.assertEquals
7+ import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
8+ import com.fasterxml.jackson.module.kotlin.readValue
9+ import com.fasterxml.jackson.databind.ObjectMapper
10+ import com.fasterxml.jackson.module.kotlin.KotlinModule
11+
12+ class JacksonUnitTest {
13+ // val mapper = jacksonObjectMapper()
14+ val mapper = ObjectMapper ().registerModule(KotlinModule ())
15+
16+
17+ @Test
18+ fun whenSerializeMovie_thenSuccess () {
19+ val movie = Movie (" Endgame" , " Marvel" , 9.2f )
20+ val serialized = mapper.writeValueAsString(movie)
21+
22+ val json = """ {"name":"Endgame","studio":"Marvel","rating":9.2}"""
23+ assertEquals(serialized, json)
24+ }
25+
26+ @Test
27+ fun whenDeserializeMovie_thenSuccess () {
28+ val json = """ {"name":"Endgame","studio":"Marvel","rating":9.2}"""
29+ // val movie: Movie = mapper.readValue(json)
30+ val movie = mapper.readValue<Movie >(json)
31+
32+ assertEquals(movie.name, " Endgame" )
33+ assertEquals(movie.studio, " Marvel" )
34+ assertEquals(movie.rating, 9.2f )
35+ }
36+
37+ @Test
38+ fun whenDeserializeMovieWithMissingValue_thenUseDefaultValue () {
39+ val json = """ {"name":"Endgame","studio":"Marvel"}"""
40+ val movie: Movie = mapper.readValue(json)
41+
42+ assertEquals(movie.name, " Endgame" )
43+ assertEquals(movie.studio, " Marvel" )
44+ assertEquals(movie.rating, 1f )
45+ }
46+
47+ @Test
48+ fun whenSerializeMap_thenSuccess () {
49+ val map = mapOf (1 to " one" , 2 to " two" )
50+ val serialized = mapper.writeValueAsString(map)
51+
52+ val json = """ {"1":"one","2":"two"}"""
53+ assertEquals(serialized, json)
54+ }
55+
56+ @Test
57+ fun whenDeserializeMap_thenSuccess () {
58+ val json = """ {"1":"one","2":"two"}"""
59+ val aMap: Map <Int ,String > = mapper.readValue(json)
60+
61+ assertEquals(aMap[1 ], " one" )
62+ assertEquals(aMap[2 ], " two" )
63+ }
64+
65+ @Test
66+ fun whenSerializeList_thenSuccess () {
67+ val movie1 = Movie (" Endgame" , " Marvel" , 9.2f )
68+ val movie2 = Movie (" Shazam" , " Warner Bros" , 7.6f )
69+ val movieList = listOf (movie1, movie2)
70+ val serialized = mapper.writeValueAsString(movieList)
71+
72+ val json = """ [{"name":"Endgame","studio":"Marvel","rating":9.2},{"name":"Shazam","studio":"Warner Bros","rating":7.6}]"""
73+ assertEquals(serialized, json)
74+ }
75+
76+ @Test
77+ fun whenDeserializeList_thenSuccess () {
78+ val json = """ [{"name":"Endgame","studio":"Marvel","rating":9.2},{"name":"Shazam","studio":"Warner Bros","rating":7.6}]"""
79+ val movieList: List <Movie > = mapper.readValue(json)
80+
81+ val movie1 = Movie (" Endgame" , " Marvel" , 9.2f )
82+ val movie2 = Movie (" Shazam" , " Warner Bros" , 7.6f )
83+ assertTrue(movieList.contains(movie1))
84+ assertTrue(movieList.contains(movie2))
85+ }
86+
87+ @Test
88+ fun whenSerializeBook_thenSuccess () {
89+ val book = Book (" Oliver Twist" , " Charles Dickens" )
90+ val serialized = mapper.writeValueAsString(book)
91+
92+ val json = """ {"title":"Oliver Twist","author":"Charles Dickens"}"""
93+ assertEquals(serialized, json)
94+ }
95+
96+ @Test
97+ fun whenDeserializeBook_thenSuccess () {
98+ val json = """ {"title":"Oliver Twist","author":"Charles Dickens"}"""
99+ val book: Book = mapper.readValue(json)
100+
101+ assertEquals(book.title, " Oliver Twist" )
102+ assertEquals(book.authorName, " Charles Dickens" )
103+ }
104+
105+ @Test
106+ fun givenJsonInclude_whenSerializeBook_thenEmptyFieldExcluded () {
107+ val book = Book (" Oliver Twist" , " Charles Dickens" )
108+ val serialized = mapper.writeValueAsString(book)
109+
110+ val json = """ {"title":"Oliver Twist","author":"Charles Dickens"}"""
111+ assertEquals(serialized, json)
112+ }
113+
114+ }
0 commit comments