• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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