content: package com.alibaba.json.bvt.parser.deser;
  
  import java.util.List;
  import java.util.Map;
  
  import junit.framework.TestCase;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.TypeReference;
  
  public class DefaultObjectDeserializerTest5 extends TestCase {
  
      public void test_error() throws Exception {
          Exception error = null;
          try {
              JSON.parseObject("[]", new TypeReference<Map<Object, Object>>() {
              });
          } catch (Exception ex) {
              error = ex;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_error_2() throws Exception {
          Exception error = null;
          try {
              JSON.parseObject(",]", new TypeReference<Map<Object, Object>>() {
              });
          } catch (Exception ex) {
              error = ex;
          }
          Assert.assertNotNull(error);
      }
      
      public void test_error_3() throws Exception {
          Exception error = null;
          try {
              JSON.parseObject("[{},{\"$ref\":0}]",
                               new TypeReference<List<Map<Object, Object>>>() {
                               });
          } catch (Exception ex) {
              error = ex;
          }
          Assert.assertNotNull(error);
      }
      
      public void test_error_4() throws Exception {
          Exception error = null;
          try {
              JSON.parseObject("[{},{\"$ref\":\"$[0]\",}]",
                               new TypeReference<List<Map<Object, Object>>>() {
                               });
          } catch (Exception ex) {
              error = ex;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_0() throws Exception {
          List<Map<Object, Object>> list = JSON.parseObject("[{},{\"$ref\":\"$[0]\"}]",
                                                            new TypeReference<List<Map<Object, Object>>>() {
                                                            });
          Assert.assertSame(list.get(0), list.get(1));
      }
  
      public void test_1() throws Exception {
          Map<Object, Map<Object, Object>> map = JSON.parseObject("{\"1\":{},\"2\":{\"$ref\":\"$\"}}",
                                                                  new TypeReference<Map<Object, Map<Object, Object>>>() {
                                                                  });
          Assert.assertSame(map, map.get("2"));
      }
  
      public void test_2() throws Exception {
          Map<Object, Map<Object, Object>> map = JSON.parseObject("{\"1\":{},\"2\":{\"$ref\":\"..\"}}",
                                                                  new TypeReference<Map<Object, Map<Object, Object>>>() {
                                                                  });
          Assert.assertSame(map, map.get("2"));
      }
  
    
  }
  