/src/test/java/com/alibaba/json/bvt/bug/Bug_for_cnhans.java

https://github.com/alibaba/fastjson · Java · 99 lines · 78 code · 21 blank · 0 comment · 0 complexity · 318b207084802bb1f8ee71b65f45a540 MD5 · raw file

  1. package com.alibaba.json.bvt.bug;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.GregorianCalendar;
  5. import java.util.Locale;
  6. import java.util.TimeZone;
  7. import org.junit.Assert;
  8. import junit.framework.TestCase;
  9. import com.alibaba.fastjson.JSON;
  10. import com.alibaba.fastjson.JSONObject;
  11. import com.alibaba.fastjson.serializer.SerializerFeature;
  12. public class Bug_for_cnhans extends TestCase {
  13. protected void setUp() throws Exception {
  14. JSON.defaultTimeZone = TimeZone.getTimeZone("Asia/Shanghai");
  15. JSON.defaultLocale = Locale.CHINA;
  16. }
  17. public void test_0() throws Exception {
  18. VO vo = new VO();
  19. vo.setCalendar(Calendar.getInstance());
  20. String text = JSON.toJSONString(vo);
  21. VO vo1 = JSON.parseObject(text, VO.class);
  22. Assert.assertEquals(vo.getCalendar().getTime(), vo1.getCalendar().getTime());
  23. }
  24. public void test_format() throws Exception {
  25. VO vo = new VO();
  26. vo.setCalendar(Calendar.getInstance(JSON.defaultTimeZone, JSON.defaultLocale));
  27. String text = JSON.toJSONString(vo, SerializerFeature.WriteDateUseDateFormat);
  28. VO vo1 = JSON.parseObject(text, VO.class);
  29. Assert.assertEquals(vo.getCalendar().get(Calendar.YEAR), vo1.getCalendar().get(Calendar.YEAR));
  30. Assert.assertEquals(vo.getCalendar().get(Calendar.MONTH), vo1.getCalendar().get(Calendar.MONTH));
  31. Assert.assertEquals(vo.getCalendar().get(Calendar.DAY_OF_MONTH), vo1.getCalendar().get(Calendar.DAY_OF_MONTH));
  32. Assert.assertEquals(vo.getCalendar().get(Calendar.HOUR_OF_DAY), vo1.getCalendar().get(Calendar.HOUR_OF_DAY));
  33. Assert.assertEquals(vo.getCalendar().get(Calendar.MINUTE), vo1.getCalendar().get(Calendar.MINUTE));
  34. Assert.assertEquals(vo.getCalendar().get(Calendar.SECOND), vo1.getCalendar().get(Calendar.SECOND));
  35. }
  36. public void test_iso_format() throws Exception {
  37. VO vo = new VO();
  38. vo.setCalendar(Calendar.getInstance());
  39. String text = JSON.toJSONString(vo, SerializerFeature.UseISO8601DateFormat);
  40. VO vo1 = JSON.parseObject(text, VO.class);
  41. Assert.assertEquals(vo.getCalendar().get(Calendar.YEAR), vo1.getCalendar().get(Calendar.YEAR));
  42. Assert.assertEquals(vo.getCalendar().get(Calendar.MONTH), vo1.getCalendar().get(Calendar.MONTH));
  43. Assert.assertEquals(vo.getCalendar().get(Calendar.DAY_OF_MONTH), vo1.getCalendar().get(Calendar.DAY_OF_MONTH));
  44. Assert.assertEquals(vo.getCalendar().get(Calendar.HOUR_OF_DAY), vo1.getCalendar().get(Calendar.HOUR_OF_DAY));
  45. Assert.assertEquals(vo.getCalendar().get(Calendar.MINUTE), vo1.getCalendar().get(Calendar.MINUTE));
  46. Assert.assertEquals(vo.getCalendar().get(Calendar.SECOND), vo1.getCalendar().get(Calendar.SECOND));
  47. }
  48. public void test_toJavaObject() throws Exception {
  49. JSONObject obj = new JSONObject();
  50. obj.put("d1", new Date());
  51. obj.put("d2", System.currentTimeMillis());
  52. obj.put("d3", GregorianCalendar.getInstance());
  53. obj.put("d4", "2012-12-22");
  54. obj.put("d5", "2012-12-22 12:11:11");
  55. obj.put("d6", "2012-12-22 12:11:11.234");
  56. obj.getObject("d1", Calendar.class);
  57. obj.getObject("d2", Calendar.class);
  58. obj.getObject("d3", Calendar.class);
  59. obj.getObject("d4", Calendar.class);
  60. obj.getObject("d5", Calendar.class);
  61. obj.getObject("d6", Calendar.class);
  62. obj.getObject("d1", GregorianCalendar.class);
  63. obj.getObject("d2", GregorianCalendar.class);
  64. obj.getObject("d3", GregorianCalendar.class);
  65. obj.getObject("d4", GregorianCalendar.class);
  66. obj.getObject("d5", GregorianCalendar.class);
  67. obj.getObject("d6", GregorianCalendar.class);
  68. }
  69. public static class VO {
  70. private Calendar calendar;
  71. public Calendar getCalendar() {
  72. return calendar;
  73. }
  74. public void setCalendar(Calendar calendar) {
  75. this.calendar = calendar;
  76. }
  77. }
  78. }