1 package com.fasterxml.jackson.databind.cfg; 2 3 import java.util.Collections; 4 5 import com.fasterxml.jackson.annotation.JsonInclude; 6 import com.fasterxml.jackson.core.JsonGenerator; 7 import com.fasterxml.jackson.core.json.JsonWriteFeature; 8 import com.fasterxml.jackson.databind.*; 9 10 public class SerConfigTest extends BaseMapTest 11 { 12 private final ObjectMapper MAPPER = new ObjectMapper(); 13 testSerConfig()14 public void testSerConfig() throws Exception 15 { 16 SerializationConfig config = MAPPER.getSerializationConfig(); 17 assertTrue(config.hasSerializationFeatures(SerializationFeature.FAIL_ON_EMPTY_BEANS.getMask())); 18 assertFalse(config.hasSerializationFeatures(SerializationFeature.CLOSE_CLOSEABLE.getMask())); 19 assertEquals(JsonInclude.Value.empty(), config.getDefaultPropertyInclusion()); 20 assertEquals(JsonInclude.Value.empty(), config.getDefaultPropertyInclusion(String.class)); 21 assertFalse(config.useRootWrapping()); 22 23 // if no changes then same config object 24 assertSame(config, config.without()); 25 assertSame(config, config.with()); 26 assertSame(config, config.with(MAPPER.getSubtypeResolver())); 27 28 // and then change 29 SerializationConfig newConfig = config.with(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); 30 assertNotSame(config, newConfig); 31 config = newConfig; 32 assertSame(config, config.with(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)); 33 assertNotSame(config, config.with(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, false)); 34 35 assertNotSame(config, config.with(SerializationFeature.INDENT_OUTPUT, 36 SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS)); 37 38 assertSame(config, config.withRootName((PropertyName) null)); // defaults to 'none' 39 40 newConfig = config.withRootName(PropertyName.construct("foobar")); 41 assertNotSame(config, newConfig); 42 assertTrue(newConfig.useRootWrapping()); 43 44 assertSame(config, config.with(config.getAttributes())); 45 assertNotSame(config, config.with(new ContextAttributes.Impl(Collections.singletonMap("a", "b")))); 46 47 assertNotNull(config.introspectDirectClassAnnotations(getClass())); 48 } 49 testGeneratorFeatures()50 public void testGeneratorFeatures() throws Exception 51 { 52 SerializationConfig config = MAPPER.getSerializationConfig(); 53 assertNotSame(config, config.with(JsonWriteFeature.ESCAPE_NON_ASCII)); 54 SerializationConfig newConfig = config.withFeatures(JsonGenerator.Feature.IGNORE_UNKNOWN); 55 assertNotSame(config, newConfig); 56 57 assertNotSame(config, config.without(JsonWriteFeature.ESCAPE_NON_ASCII)); 58 assertNotSame(config, config.withoutFeatures(JsonGenerator.Feature.IGNORE_UNKNOWN)); 59 } 60 testFormatFeatures()61 public void testFormatFeatures() throws Exception 62 { 63 SerializationConfig config = MAPPER.getSerializationConfig(); 64 assertNotSame(config, config.with(BogusFormatFeature.FF_DISABLED_BY_DEFAULT)); 65 assertNotSame(config, config.withFeatures(BogusFormatFeature.FF_DISABLED_BY_DEFAULT, 66 BogusFormatFeature.FF_ENABLED_BY_DEFAULT)); 67 assertNotSame(config, config.without(BogusFormatFeature.FF_ENABLED_BY_DEFAULT)); 68 assertNotSame(config, config.withoutFeatures(BogusFormatFeature.FF_DISABLED_BY_DEFAULT, 69 BogusFormatFeature.FF_ENABLED_BY_DEFAULT)); 70 } 71 } 72