SerializationConfigTest.java
package tools.jackson.databind.cfg;
import java.util.Collections;
import org.junit.jupiter.api.Test;
import tools.jackson.core.StreamWriteFeature;
import tools.jackson.core.json.JsonWriteFeature;
import tools.jackson.databind.*;
import static org.junit.jupiter.api.Assertions.*;
public class SerializationConfigTest
{
private final ObjectMapper MAPPER = new ObjectMapper();
@Test
public void testSerConfig() throws Exception
{
SerializationConfig config = MAPPER.serializationConfig();
assertFalse(config.hasSerializationFeatures(SerializationFeature.FAIL_ON_EMPTY_BEANS.getMask()));
assertFalse(config.hasSerializationFeatures(SerializationFeature.CLOSE_CLOSEABLE.getMask()));
assertEquals(ConfigOverrides.INCLUDE_DEFAULT, config.getDefaultPropertyInclusion());
assertEquals(ConfigOverrides.INCLUDE_DEFAULT, config.getDefaultPropertyInclusion(String.class));
assertFalse(config.useRootWrapping());
assertNotSame(config, config.with(SerializationFeature.INDENT_OUTPUT,
SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS));
assertSame(config, config.withRootName((PropertyName) null)); // defaults to 'none'
SerializationConfig newConfig = config.withRootName(PropertyName.construct("foobar"));
assertNotSame(config, newConfig);
assertTrue(newConfig.useRootWrapping());
assertSame(config, config.with(config.getAttributes()));
assertNotSame(config, config.with(new ContextAttributes.Impl(Collections.singletonMap("a", "b"))));
// assertNotNull(config.introspectDirectClassAnnotations(getClass()));
}
@Test
public void testStreamWriteFeatures() throws Exception
{
SerializationConfig config = MAPPER.serializationConfig();
assertFalse(config.hasFormatFeature(JsonWriteFeature.ESCAPE_NON_ASCII));
assertNotSame(config, config.with(JsonWriteFeature.ESCAPE_NON_ASCII));
SerializationConfig newConfig = config.withFeatures(StreamWriteFeature.IGNORE_UNKNOWN);
assertNotSame(config, newConfig);
assertTrue(newConfig.isEnabled(StreamWriteFeature.IGNORE_UNKNOWN));
// no change to settings, same object:
assertSame(config, config.without(JsonWriteFeature.ESCAPE_NON_ASCII));
assertSame(config, config.withoutFeatures(StreamWriteFeature.IGNORE_UNKNOWN));
}
@Test
public void testFormatFeatures() throws Exception
{
final JsonWriteFeature DUSABLED_BY_DEFAULT = JsonWriteFeature.ESCAPE_NON_ASCII;
final JsonWriteFeature ENABLED_BY_DEFAULT = JsonWriteFeature.QUOTE_PROPERTY_NAMES;
SerializationConfig config = MAPPER.serializationConfig();
// feature that is NOT enabled by default
SerializationConfig config2 = config.with(DUSABLED_BY_DEFAULT);
assertNotSame(config, config2);
// and then with one that IS enabled by default:
SerializationConfig config3 = config.withFeatures(DUSABLED_BY_DEFAULT, ENABLED_BY_DEFAULT);
assertNotSame(config, config3);
assertNotSame(config3, config3.without(ENABLED_BY_DEFAULT));
assertNotSame(config3, config3.withoutFeatures(DUSABLED_BY_DEFAULT,
ENABLED_BY_DEFAULT));
}
}