/src/test/java/com/alibaba/json/bvt/parser/deser/DefaultObjectDeserializerTest2.java

https://github.com/flydream/fastjson · Java · 145 lines · 101 code · 44 blank · 0 comment · 0 complexity · 81ee14ed7c0bded5e9be7573a01ad54c MD5 · raw file

  1. package com.alibaba.json.bvt.parser.deser;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.SortedMap;
  5. import java.util.TreeMap;
  6. import java.util.concurrent.ConcurrentHashMap;
  7. import java.util.concurrent.ConcurrentMap;
  8. import junit.framework.Assert;
  9. import junit.framework.TestCase;
  10. import com.alibaba.fastjson.JSON;
  11. import com.alibaba.fastjson.JSONObject;
  12. import com.alibaba.fastjson.TypeReference;
  13. import com.alibaba.fastjson.parser.DefaultExtJSONParser;
  14. import com.alibaba.fastjson.parser.ParserConfig;
  15. import com.alibaba.fastjson.parser.deserializer.DefaultObjectDeserializer;
  16. public class DefaultObjectDeserializerTest2 extends TestCase {
  17. public void test_0() throws Exception {
  18. String input = "{'map':{}}";
  19. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  20. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  21. Map<String, TreeMap> map = JSON.parseObject(input, new TypeReference<Map<String, TreeMap>>() {
  22. }.getType());
  23. Assert.assertTrue(map.get("map") instanceof TreeMap);
  24. }
  25. public void test_1() throws Exception {
  26. String input = "{'map':{}}";
  27. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  28. SortedMap<String, SortedMap> map = JSON.parseObject(input, new TypeReference<SortedMap<String, SortedMap>>() {
  29. }.getType());
  30. Assert.assertEquals(TreeMap.class, map.get("map").getClass());
  31. }
  32. public void test_2() throws Exception {
  33. String input = "{'map':{}}";
  34. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  35. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  36. SortedMap<String, Map> map = JSON.parseObject(input, new TypeReference<SortedMap<String, Map>>() {
  37. }.getType());
  38. Assert.assertEquals(HashMap.class, map.get("map").getClass());
  39. }
  40. public void test_3() throws Exception {
  41. String input = "{'map':{}}";
  42. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  43. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  44. SortedMap<String, ConcurrentMap> map = JSON.parseObject(input, new TypeReference<SortedMap<String, ConcurrentMap>>() {
  45. }.getType());
  46. Assert.assertEquals(ConcurrentHashMap.class, map.get("map").getClass());
  47. }
  48. public void test_4() throws Exception {
  49. String input = "{'map':{}}";
  50. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  51. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  52. SortedMap<String, HashMap> map = JSON.parseObject(input, new TypeReference<SortedMap<String, HashMap>>() {
  53. }.getType());
  54. Assert.assertEquals(HashMap.class, map.get("map").getClass());
  55. }
  56. public void test_5() throws Exception {
  57. String input = "{'map':{}}";
  58. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  59. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  60. HashMap<String, HashMap> map = JSON.parseObject(input, new TypeReference<HashMap<String, HashMap>>() {
  61. }.getType());
  62. Assert.assertEquals(HashMap.class, map.get("map").getClass());
  63. }
  64. public void test_6() throws Exception {
  65. String input = "{'map':{}}";
  66. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  67. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  68. Map map = JSON.parseObject(input, new TypeReference<JSONObject>() {
  69. }.getType());
  70. Assert.assertEquals(JSONObject.class, map.get("map").getClass());
  71. }
  72. public void test_7() throws Exception {
  73. String input = "{'map':{}}";
  74. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  75. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  76. TreeMap<String, HashMap> map = JSON.parseObject(input, new TypeReference<TreeMap<String, HashMap>>() {
  77. }.getType());
  78. Assert.assertEquals(HashMap.class, map.get("map").getClass());
  79. }
  80. public void test_8() throws Exception {
  81. String input = "{'map':{}}";
  82. ConcurrentMap<String, HashMap> map = JSON.parseObject(input, new TypeReference<ConcurrentMap<String, HashMap>>() {
  83. }.getType());
  84. Assert.assertEquals(HashMap.class, map.get("map").getClass());
  85. }
  86. public void test_error() throws Exception {
  87. String input = "{'map':{}}";
  88. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  89. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  90. Exception error = null;
  91. try {
  92. JSON.parseObject(input, new TypeReference<Map1<String, HashMap>>() {
  93. }.getType());
  94. } catch (Exception ex) {
  95. error = ex;
  96. }
  97. Assert.assertNotNull(error);
  98. }
  99. public static interface Map1<K, V> extends Map<K, V> {
  100. }
  101. }