/src/test/java/com/alibaba/json/bvt/parser/TypeUtilsTest.java
https://github.com/flydream/fastjson · Java · 418 lines · 322 code · 96 blank · 0 comment · 4 complexity · bc704fcb7c1f7422bf18d531ac9acce0 MD5 · raw file
- package com.alibaba.json.bvt.parser;
-
- import java.lang.reflect.Method;
- import java.math.BigDecimal;
- import java.math.BigInteger;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- 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.JSONException;
- import com.alibaba.fastjson.JSONObject;
- import com.alibaba.fastjson.parser.ParserConfig;
- import com.alibaba.fastjson.util.TypeUtils;
-
- @SuppressWarnings("rawtypes")
- public class TypeUtilsTest extends TestCase {
-
- public void test_0() throws Exception {
- HashMap map = new HashMap();
-
- Assert.assertTrue(map == TypeUtils.castToJavaBean(map, Map.class));
- }
-
- public void test_1() throws Exception {
- JSONObject map = new JSONObject();
- Assert.assertTrue(map == TypeUtils.castToJavaBean(map, Map.class));
- }
-
- public void test_2() throws Exception {
- JSONObject map = new JSONObject();
- map.put("id", 1);
- map.put("name", "panlei");
-
- User user = TypeUtils.castToJavaBean(map, User.class);
- Assert.assertEquals(1L, user.getId());
- Assert.assertEquals("panlei", user.getName());
- }
-
- public void test_cast_Integer() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1L);
- Assert.assertEquals(new Integer(1), json.getObject("id", int.class));
- }
-
- public void test_cast_Integer_2() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1L);
- Assert.assertEquals(new Integer(1), json.getObject("id", Integer.class));
- }
-
- public void test_cast_to_long() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Long(1), json.getObject("id", long.class));
- }
-
- public void test_cast_to_Long() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Long(1), json.getObject("id", Long.class));
- }
-
- public void test_cast_to_short() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Short((short) 1), json.getObject("id", short.class));
- }
-
- public void test_cast_to_Short() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Short((short) 1), json.getObject("id", Short.class));
- }
-
- public void test_cast_to_byte() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Byte((byte) 1), json.getObject("id", byte.class));
- }
-
- public void test_cast_to_Byte() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new Byte((byte) 1), json.getObject("id", Byte.class));
- }
-
- public void test_cast_to_BigInteger() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new BigInteger("1"), json.getObject("id", BigInteger.class));
- }
-
- public void test_cast_to_BigDecimal() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(new BigDecimal("1"), json.getObject("id", BigDecimal.class));
- }
-
- public void test_cast_to_boolean() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(Boolean.TRUE, json.getObject("id", boolean.class));
- }
-
- public void test_cast_to_Boolean() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals(Boolean.TRUE, json.getObject("id", Boolean.class));
- }
-
- public void test_cast_null() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", null);
- Assert.assertEquals(null, json.getObject("id", Boolean.class));
- }
-
- public void test_cast_to_String() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
- Assert.assertEquals("1", json.getObject("id", String.class));
- }
-
- public void test_cast_to_Date() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", millis);
- Assert.assertEquals(new Date(millis), json.getObject("date", Date.class));
- }
-
- public void test_cast_to_SqlDate() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", millis);
- Assert.assertEquals(new java.sql.Date(millis), json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_string() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", Long.toString(millis));
- Assert.assertEquals(new java.sql.Date(millis), json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_null() throws Exception {
- JSONObject json = new JSONObject();
- json.put("date", null);
- Assert.assertEquals(null, json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_null2() throws Exception {
- Assert.assertEquals(null, TypeUtils.castToSqlDate(null));
- }
-
- public void test_cast_to_SqlDate_util_Date() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", new Date(millis));
- Assert.assertEquals(new java.sql.Date(millis), json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_sql_Date() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", new java.sql.Date(millis));
- Assert.assertEquals(new java.sql.Date(millis), json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_sql_Date2() throws Exception {
- long millis = System.currentTimeMillis();
-
- java.sql.Date date = new java.sql.Date(millis);
- Assert.assertEquals(date, TypeUtils.castToSqlDate(date));
- }
-
- public void test_cast_to_SqlDate_calendar() throws Exception {
- long millis = System.currentTimeMillis();
-
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(millis);
-
- JSONObject json = new JSONObject();
- json.put("date", calendar);
- Assert.assertEquals(new java.sql.Date(millis), json.getObject("date", java.sql.Date.class));
- }
-
- public void test_cast_to_SqlDate_error() throws Exception {
- JSONObject json = new JSONObject();
- json.put("date", 0);
-
- JSONException error = null;
- try {
- json.getObject("date", java.sql.Date.class);
- } catch (JSONException e) {
- error = e;
- }
- Assert.assertNotNull(error);
- }
-
- public void test_cast_to_Timestamp() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", millis);
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_string() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", Long.toString(millis));
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_number() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", new BigDecimal(Long.toString(millis)));
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_null() throws Exception {
- JSONObject json = new JSONObject();
- json.put("date", null);
- Assert.assertEquals(null, json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_null2() throws Exception {
- Assert.assertEquals(null, TypeUtils.castToTimestamp(null));
- }
-
- public void test_cast_to_BigDecimal_same() throws Exception {
- BigDecimal value = new BigDecimal("123");
- Assert.assertEquals(true, value == TypeUtils.castToBigDecimal(value));
- }
-
- public void test_cast_to_BigInteger_same() throws Exception {
- BigInteger value = new BigInteger("123");
- Assert.assertEquals(true, value == TypeUtils.castToBigInteger(value));
- }
-
- public void test_cast_Array() throws Exception {
- Assert.assertEquals(Integer[].class, TypeUtils.cast(new ArrayList(), Integer[].class, null).getClass());
- }
-
- public void test_cast_to_Timestamp_util_Date() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", new Date(millis));
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_sql_Date() throws Exception {
- long millis = System.currentTimeMillis();
-
- JSONObject json = new JSONObject();
- json.put("date", new java.sql.Date(millis));
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_sql_Timestamp() throws Exception {
- long millis = System.currentTimeMillis();
-
- java.sql.Timestamp date = new java.sql.Timestamp(millis);
- Assert.assertEquals(date, TypeUtils.castToTimestamp(date));
- }
-
- public void test_cast_to_Timestamp_calendar() throws Exception {
- long millis = System.currentTimeMillis();
-
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeInMillis(millis);
-
- JSONObject json = new JSONObject();
- json.put("date", calendar);
- Assert.assertEquals(new java.sql.Timestamp(millis), json.getObject("date", java.sql.Timestamp.class));
- }
-
- public void test_cast_to_Timestamp_error() throws Exception {
- JSONObject json = new JSONObject();
- json.put("date", 0);
-
- JSONException error = null;
- try {
- json.getObject("date", java.sql.Timestamp.class);
- } catch (JSONException e) {
- error = e;
- }
- Assert.assertNotNull(error);
- }
-
- public void test_cast_ab() throws Exception {
- B b = new B();
-
- JSONObject json = new JSONObject();
- json.put("value", b);
- Assert.assertEquals(b, json.getObject("value", A.class));
- }
-
- public void test_cast_ab_1() throws Exception {
- B b = new B();
-
- JSONObject json = new JSONObject();
- json.put("value", b);
- Assert.assertEquals(b, json.getObject("value", IA.class));
- }
-
- public void test_cast_ab_error() throws Exception {
- A a = new A();
-
- JSONObject json = new JSONObject();
- json.put("value", a);
-
- JSONException error = null;
- try {
- json.getObject("value", B.class);
- } catch (JSONException e) {
- error = e;
- }
- Assert.assertNotNull(error);
- }
-
- public void test_error() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
-
- JSONException error = null;
- try {
- TypeUtils.castToJavaBean(json, C.class, ParserConfig.getGlobalInstance());
- } catch (JSONException e) {
- error = e;
- }
- Assert.assertNotNull(error);
- }
-
- public void test_error_2() throws Exception {
- JSONObject json = new JSONObject();
- json.put("id", 1);
-
- Method method = TypeUtilsTest.class.getMethod("f", List.class);
-
- TypeUtils.cast(json, method.getGenericParameterTypes()[0], ParserConfig.getGlobalInstance());
- }
-
- public void test_3() throws Exception {
- JSONObject map = new JSONObject();
- map.put("id", 1);
- map.put("name", "panlei");
-
- User user = JSON.toJavaObject(map, User.class);
- Assert.assertEquals(1L, user.getId());
- Assert.assertEquals("panlei", user.getName());
- }
-
- public static class User {
-
- private long id;
- private String name;
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- }
-
- public static class A implements IA {
-
- }
-
- public static interface IA {
-
- }
-
- public static class B extends A {
-
- }
-
- public static class C extends B {
-
- public int getId() {
- throw new UnsupportedOperationException();
- }
-
- public void setId(int id) {
- throw new UnsupportedOperationException();
- }
- }
-
- public static void f(List<?> list) {
-
- }
- }