From 09fd9747eeee2bcf1014b2fa8a03f244e0a1f253 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Fri, 14 Jun 2024 16:29:23 -0700 Subject: [PATCH] Add a simple test for `JsonMapper.rebuild()` --- .../jackson/databind/json/JsonMapper.java | 2 +- .../jackson/databind/ObjectMapperTest.java | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/json/JsonMapper.java b/src/main/java/com/fasterxml/jackson/databind/json/JsonMapper.java index acac5920c3..da521252ce 100644 --- a/src/main/java/com/fasterxml/jackson/databind/json/JsonMapper.java +++ b/src/main/java/com/fasterxml/jackson/databind/json/JsonMapper.java @@ -118,7 +118,7 @@ public static Builder builder(JsonFactory streamFactory) { return new Builder(new JsonMapper(streamFactory)); } - public JsonMapper.Builder rebuild() { + public JsonMapper.Builder rebuild() { // 09-Dec-2018, tatu: Not as good as what 3.0 has wrt immutability, but best approximation // we have for 2.x return new Builder(this.copy()); diff --git a/src/test/java/com/fasterxml/jackson/databind/ObjectMapperTest.java b/src/test/java/com/fasterxml/jackson/databind/ObjectMapperTest.java index 681daf9f02..f6b18ba846 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ObjectMapperTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/ObjectMapperTest.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.core.json.JsonWriteFeature; import com.fasterxml.jackson.core.util.MinimalPrettyPrinter; - +import com.fasterxml.jackson.databind.cfg.EnumFeature; import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; import com.fasterxml.jackson.databind.introspect.VisibilityChecker; import com.fasterxml.jackson.databind.json.JsonMapper; @@ -267,6 +267,27 @@ public void testAnnotationIntrospectorCopying() m2.getSerializationConfig().getAnnotationIntrospector().getClass()); } + /* + /********************************************************** + /* Test methods, JsonMapper.rebuild() + /********************************************************** + */ + + @Test + public void jsonMapperRebuildTest() + { + JsonMapper m = JsonMapper.builder().build(); + JsonMapper m2 = m.copy(); + assertNotSame(m, m2); + + JsonMapper m3 = m2.rebuild() + .propertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE) + .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS) + .enable(EnumFeature.WRITE_ENUMS_TO_LOWERCASE) + .build(); + assertNotSame(m2, m3); + } + /* /********************************************************** /* Test methods, other