aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/ser/TestSerializerProvider.java
blob: 52f33508e49de2c0ea0e30c14f5629cba3c34e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.fasterxml.jackson.databind.ser;

import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.cfg.SerializationConfig;
import com.fasterxml.jackson.databind.ser.BeanSerializerFactory;

public class TestSerializerProvider
    extends com.fasterxml.jackson.databind.BaseMapTest
{
    static class MyBean {
        public int getX() { return 3; }
    }

    public void testFindExplicit() throws JsonMappingException
    {
        ObjectMapper mapper = new ObjectMapper();
        SerializationConfig config = mapper.getSerializationConfig();
        SerializerFactory f = new BeanSerializerFactory(null);
        SerializerProvider prov = new SerializerProvider.Impl().createInstance(config, f);

        // Should have working default key and null key serializers
        assertNotNull(prov.findKeySerializer(null, null));
        assertNotNull(prov.getDefaultNullKeySerializer());
        assertNotNull(prov.getDefaultNullValueSerializer());
        // as well as 'unknown type' one (throws exception)
        assertNotNull(prov.getUnknownTypeSerializer(getClass()));
        
        assertTrue(prov.createInstance(config, f).hasSerializerFor(String.class));
        // call twice to verify it'll be cached (second code path)
        assertTrue(prov.createInstance(config, f).hasSerializerFor(String.class));

        assertTrue(prov.createInstance(config, f).hasSerializerFor(MyBean.class));
        assertTrue(prov.createInstance(config, f).hasSerializerFor(MyBean.class));
    }
}