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

https://github.com/flydream/fastjson · Java · 118 lines · 87 code · 31 blank · 0 comment · 1 complexity · 46caa2ca30035a70ec0a9aa4c4c6e135 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.TreeMap;
  5. import junit.framework.Assert;
  6. import junit.framework.TestCase;
  7. import com.alibaba.fastjson.JSON;
  8. import com.alibaba.fastjson.TypeReference;
  9. import com.alibaba.fastjson.parser.DefaultExtJSONParser;
  10. import com.alibaba.fastjson.parser.ParserConfig;
  11. import com.alibaba.fastjson.parser.deserializer.DefaultObjectDeserializer;
  12. public class DefaultObjectDeserializerTest1 extends TestCase {
  13. public void test_0() throws Exception {
  14. String input = "{'map':{}}";
  15. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  16. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  17. Map<String, Object> map = new HashMap<String, Object>();
  18. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  19. }.getType(), null);
  20. Assert.assertTrue(map.get("map") instanceof TreeMap);
  21. }
  22. public void test_1() throws Exception {
  23. String input = "{'map':null}";
  24. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  25. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  26. Map<String, Object> map = new HashMap<String, Object>();
  27. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  28. }.getType(), null);
  29. Assert.assertTrue(map.get("map") == null);
  30. }
  31. public void test_error_0() throws Exception {
  32. String input = "{\"map\" {} }";
  33. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  34. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  35. Throwable error = null;
  36. try {
  37. Map<String, Object> map = new HashMap<String, Object>();
  38. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  39. }.getType(), null);
  40. } catch (Throwable ex) {
  41. error = ex;
  42. }
  43. Assert.assertNotNull(error);
  44. }
  45. public void test_error_1() throws Exception {
  46. String input = "{'map': 'aaa' }";
  47. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), 0);
  48. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  49. Throwable error = null;
  50. try {
  51. Map<String, Object> map = new HashMap<String, Object>();
  52. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  53. }.getType(), null);
  54. } catch (Throwable ex) {
  55. error = ex;
  56. }
  57. Assert.assertNotNull(error);
  58. }
  59. public void test_error_2() throws Exception {
  60. String input = "{'map' 'aaa' }";
  61. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  62. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  63. Throwable error = null;
  64. try {
  65. Map<String, Object> map = new HashMap<String, Object>();
  66. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  67. }.getType(), null);
  68. } catch (Throwable ex) {
  69. error = ex;
  70. }
  71. Assert.assertNotNull(error);
  72. }
  73. public void test_error_3() throws Exception {
  74. String input = "{map 'aaa' }";
  75. DefaultExtJSONParser parser = new DefaultExtJSONParser(input, ParserConfig.getGlobalInstance(), JSON.DEFAULT_PARSER_FEATURE);
  76. DefaultObjectDeserializer deser = new DefaultObjectDeserializer();
  77. Throwable error = null;
  78. try {
  79. Map<String, Object> map = new HashMap<String, Object>();
  80. deser.parseMap(parser, map, new TypeReference<TreeMap>() {
  81. }.getType(), null);
  82. } catch (Throwable ex) {
  83. error = ex;
  84. }
  85. Assert.assertNotNull(error);
  86. }
  87. }