content: package com.alibaba.json.bvt.parser;
  
  import java.lang.reflect.ParameterizedType;
  import java.util.List;
  
  import junit.framework.Assert;
  import junit.framework.TestCase;
  
  import com.alibaba.fastjson.JSONException;
  import com.alibaba.fastjson.TypeReference;
  import com.alibaba.fastjson.util.TypeUtils;
  
  public class TypeUtilsTest2 extends TestCase {
  
      public void test_0() throws Exception {
          Assert.assertNull(TypeUtils.cast("", Entity.class, null));
          Assert.assertNull(TypeUtils.cast("", Type.class, null));
          Assert.assertNull(TypeUtils.cast("", Byte.class, null));
          Assert.assertNull(TypeUtils.cast("", Short.class, null));
          Assert.assertNull(TypeUtils.cast("", Integer.class, null));
          Assert.assertNull(TypeUtils.cast("", Long.class, null));
          Assert.assertNull(TypeUtils.cast("", Float.class, null));
          Assert.assertNull(TypeUtils.cast("", Double.class, null));
          Assert.assertNull(TypeUtils.cast("", Character.class, null));
          Assert.assertNull(TypeUtils.cast("", java.util.Date.class, null));
          Assert.assertNull(TypeUtils.cast("", java.sql.Date.class, null));
          Assert.assertNull(TypeUtils.cast("", java.sql.Timestamp.class, null));
  
          Assert.assertNull(TypeUtils.castToChar(""));
          Assert.assertNull(TypeUtils.castToChar(null));
          Assert.assertEquals('A', TypeUtils.castToChar('A').charValue());
          Assert.assertEquals('A', TypeUtils.castToChar("A").charValue());
  
          Assert.assertNull(TypeUtils.castToBigDecimal(""));
          Assert.assertNull(TypeUtils.castToBigInteger(""));
          Assert.assertNull(TypeUtils.castToBoolean(""));
          Assert.assertNull(TypeUtils.castToEnum("", Type.class, null));
          
          Assert.assertEquals(null, TypeUtils.cast("", new TypeReference<Pair<Object, Object>>() {
  
          }.getType(), null));
      }
  
      public void test_1() throws Exception {
          Assert.assertEquals(null, TypeUtils.cast("", new TypeReference<List<Object>>() {
  
          }.getType(), null));
  
      }
  
      public void test_error_2() throws Exception {
          Exception error = null;
          try {
              Assert.assertEquals(null, TypeUtils.cast("a", new TypeReference<List<Object>>() {
  
              }.getType(), null));
          } catch (JSONException e) {
              error = e;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_error_3() throws Exception {
          Exception error = null;
          try {
              Assert.assertEquals(null, TypeUtils.cast("a", new TypeReference<Pair<Object, Object>>() {
  
              }.getType(), null));
          } catch (JSONException e) {
              error = e;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_error_4() throws Exception {
          Exception error = null;
          try {
              Assert.assertEquals(null, TypeUtils.cast("a", ((ParameterizedType) new TypeReference<List<?>>() {
  
              }.getType()).getActualTypeArguments()[0], null));
          } catch (JSONException e) {
              error = e;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_error_0() throws Exception {
          Exception error = null;
          try {
              TypeUtils.castToChar("abc");
          } catch (JSONException e) {
              error = e;
          }
          Assert.assertNotNull(error);
      }
  
      public void test_error_1() throws Exception {
          Exception error = null;
          try {
              TypeUtils.castToChar(true);
          } catch (JSONException e) {
              error = e;
          }
          Assert.assertNotNull(error);
      }
  
      public static class Entity {
  
      }
  
      public static class Pair<K, V> {
  
      }
  
      public static enum Type {
          A, B, C
      }
  
  }
  