3939import java .util .Set ;
4040import java .util .stream .Collectors ;
4141
42- import org .joda .time .DateTime ;
43- import org .joda .time .DateTimeZone ;
4442import org .junit .jupiter .api .BeforeEach ;
4543import org .junit .jupiter .api .Test ;
4644import org .junit .jupiter .params .ParameterizedTest ;
4947import tools .jackson .databind .JsonNode ;
5048import tools .jackson .databind .ObjectMapper ;
5149import tools .jackson .databind .json .JsonMapper ;
52- import tools .jackson .datatype .joda .JodaModule ;
5350import tools .jackson .module .kotlin .KotlinModule ;
5451
5552import static org .assertj .core .api .Assertions .assertThat ;
6259 */
6360class JacksonJsonObjectMapperTests {
6461
65- private static final JacksonModule JODA_MODULE = new JodaModule ();
66-
67- private static final JacksonModule KOTLIN_MODULE = new KotlinModule .Builder ().build ();
68-
6962 private JacksonJsonObjectMapper mapper ;
7063
7164 @ BeforeEach
@@ -75,17 +68,15 @@ void setUp() {
7568
7669 @ Test
7770 void compareAutoDiscoveryVsManualModules () {
71+ KotlinModule kotlinModule = new KotlinModule .Builder ().build ();
7872 ObjectMapper manualMapper = JsonMapper .builder ()
79- .addModules (collectWellKnownModulesIfAvailable () )
73+ .addModules (kotlinModule )
8074 .build ();
8175
82- Set <String > collectedModuleNames = getModuleNames (collectWellKnownModulesIfAvailable ());
83-
8476 Set <String > autoModuleNames = getModuleNames (mapper .getObjectMapper ().getRegisteredModules ());
85- assertThat (autoModuleNames ).isEqualTo (collectedModuleNames );
86-
8777 Set <String > manualModuleNames = getModuleNames (manualMapper .getRegisteredModules ());
88- assertThat (manualModuleNames ).isEqualTo (collectedModuleNames );
78+
79+ assertThat (autoModuleNames ).isEqualTo (manualModuleNames );
8980 }
9081
9182 @ Test
@@ -196,7 +187,7 @@ void testMapTypes() throws IOException {
196187 }
197188
198189 @ Test
199- public void testOptional () throws IOException {
190+ void testOptional () throws IOException {
200191 TestData data =
new TestData (
"John" ,
Optional .
of (
"[email protected] " ),
Optional .
empty ());
201192
202193 String json = mapper .toJson (data );
@@ -207,72 +198,29 @@ public void testOptional() throws IOException {
207198 }
208199
209200 @ Test
210- public void testJavaTime () throws Exception {
201+ void testJavaTime () throws IOException {
211202 LocalDateTime localDateTime = LocalDateTime .of (2000 , 1 , 1 , 0 , 0 );
212203 ZonedDateTime zonedDateTime = ZonedDateTime .of (localDateTime , ZoneId .of ("UTC" ));
213204 TimeData data = new TimeData (localDateTime , zonedDateTime );
214205
215206 String json = mapper .toJson (data );
216- assertThat ("{\" localDate\" :\" 2000-01-01T00:00:00\" ,\" zoneDate\" :\" 2000-01-01T00:00:00Z\" }" ). isEqualTo ( json );
207+ assertThat (json ). isEqualTo ( "{\" localDate\" :\" 2000-01-01T00:00:00\" ,\" zoneDate\" :\" 2000-01-01T00:00:00Z\" }" );
217208
218209 TimeData deserialized = mapper .fromJson (json , TimeData .class );
219210 assertThat (deserialized .localDate ()).isEqualTo (data .localDate ());
220211 assertThat (deserialized .zoneDate ().toInstant ()).isEqualTo (data .zoneDate ().toInstant ());
221212 }
222213
223- @ Test
224- public void testJodaWithJodaModule () throws Exception {
225- ObjectMapper objectMapper = mapper .getObjectMapper ();
226- Set <String > registeredModules = getModuleNames (objectMapper .getRegisteredModules ());
227- assertThat (registeredModules .contains (JODA_MODULE .getModuleName ())).isTrue ();
228-
229- org .joda .time .DateTime jodaDateTime = new DateTime (2000 , 1 , 1 , 0 , 0 , DateTimeZone .UTC );
230- JodaData data = new JodaData ("John" , jodaDateTime );
231-
232- String json = mapper .toJson (data );
233- assertThat ("{\" name\" :\" John\" ,\" jodaDate\" :\" 2000-01-01T00:00:00.000Z\" }" ).isEqualTo (json );
234-
235- JodaData deserialized = mapper .fromJson (json , JodaData .class );
236- assertThat (deserialized .name ()).isEqualTo (data .name ());
237- assertThat (deserialized .jodaDate ()).isEqualTo (data .jodaDate ());
238- }
239-
240- @ Test
241- public void testJodaWithoutJodaModule () {
242- ObjectMapper customMapper = JsonMapper .builder ().build ();
243- JacksonJsonObjectMapper mapper = new JacksonJsonObjectMapper (customMapper );
244-
245- Set <String > registeredModules = getModuleNames (mapper .getObjectMapper ().getRegisteredModules ());
246- assertThat (registeredModules .contains (JODA_MODULE .getModuleName ())).isFalse ();
247-
248- org .joda .time .DateTime jodaDateTime = new DateTime (2000 , 1 , 1 , 0 , 0 , DateTimeZone .UTC );
249- JodaData data = new JodaData ("John" , jodaDateTime );
250-
251- assertThatThrownBy (() -> mapper .toJson (data ))
252- .isInstanceOf (IOException .class );
253-
254- String json = "{\" name\" :\" John\" ,\" jodaDate\" :\" 2000-01-01T00:00:00.000Z\" }" ;
255- assertThatThrownBy (() -> mapper .fromJson (json , JodaData .class ))
256- .isInstanceOf (IOException .class );
257- }
258-
259214 private Set <String > getModuleNames (Collection <JacksonModule > modules ) {
260215 return modules .stream ()
261216 .map (JacksonModule ::getModuleName )
262217 .collect (Collectors .toUnmodifiableSet ());
263218 }
264219
265- private List <JacksonModule > collectWellKnownModulesIfAvailable () {
266- return List .of (JODA_MODULE , KOTLIN_MODULE );
267- }
268-
269220 private record TestData (String name , Optional <String > email , Optional <Integer > age ) {
270221 }
271222
272223 private record TimeData (LocalDateTime localDate , ZonedDateTime zoneDate ) {
273224 }
274225
275- private record JodaData (String name , org .joda .time .DateTime jodaDate ) {
276- }
277-
278226}
0 commit comments