content: package com.alibaba.json.bvt.serializer;
  
  import java.lang.reflect.Field;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.serializer.IntegerCodec;
  import com.alibaba.fastjson.serializer.SerializeConfig;
  import com.alibaba.fastjson.util.IdentityHashMap;
  
  import junit.framework.TestCase;
  
  @SuppressWarnings("deprecation")
  public class JSONSerializerMapTest extends TestCase {
  
      public void test_0() throws Exception {
          SerializeConfig map = new SerializeConfig();
  
          Assert.assertFalse(0 == size(map));
          Assert.assertEquals(true, map.get(Integer.class) == IntegerCodec.instance);
  
          Assert.assertEquals(true, map.put(Integer.class, IntegerCodec.instance));
          Assert.assertEquals(true, map.put(Integer.class, IntegerCodec.instance));
          Assert.assertEquals(true, map.put(Integer.class, IntegerCodec.instance));
  
          Assert.assertEquals(true, map.get(Integer.class) == IntegerCodec.instance);
  
          Assert.assertFalse(0 == size(map));
      }
      
      public static int size(SerializeConfig config) throws Exception {
          Field serializersField = SerializeConfig.class.getDeclaredField("serializers");
          serializersField.setAccessible(true);
          Object map = serializersField.get(config);
          
          Field bucketsField = IdentityHashMap.class.getDeclaredField("buckets");
          bucketsField.setAccessible(true);
          Object[] buckets = (Object[]) bucketsField.get(map);
          
          Field nextField = Class.forName("com.alibaba.fastjson.util.IdentityHashMap$Entry").getDeclaredField("next");
          
          int size = 0;
          for (int i = 0; i < buckets.length; ++i) {
              for (Object entry = buckets[i]; entry != null; entry = nextField.get(entry)) {
                  size++;
              }
          }
          return size;
      }
  }
  