/src/test/java/com/alibaba/json/bvt/serializer/date/DateTest.java

https://github.com/alibaba/fastjson · Java · 145 lines · 105 code · 40 blank · 0 comment · 0 complexity · 31e31871363a194c776d5a2c80805259 MD5 · raw file

  1. package com.alibaba.json.bvt.serializer.date;
  2. import java.util.Date;
  3. import java.util.Locale;
  4. import java.util.TimeZone;
  5. import org.junit.Assert;
  6. import junit.framework.TestCase;
  7. import com.alibaba.fastjson.JSON;
  8. import com.alibaba.fastjson.serializer.JSONSerializer;
  9. import com.alibaba.fastjson.serializer.SerializeWriter;
  10. import com.alibaba.fastjson.serializer.SerializerFeature;
  11. public class DateTest extends TestCase {
  12. protected void setUp() throws Exception {
  13. JSON.defaultTimeZone = TimeZone.getTimeZone("Asia/Shanghai");
  14. JSON.defaultLocale = Locale.CHINA;
  15. }
  16. public void test_0() throws Exception {
  17. SerializeWriter out = new SerializeWriter();
  18. JSONSerializer serializer = new JSONSerializer(out);
  19. Assert.assertEquals(false, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  20. serializer.write(new Date(1294552193254L));
  21. Assert.assertEquals("1294552193254", out.toString());
  22. }
  23. public void test_1() throws Exception {
  24. SerializeWriter out = new SerializeWriter();
  25. JSONSerializer serializer = new JSONSerializer(out);
  26. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  27. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  28. serializer.write(new Date(1294552193254L));
  29. Assert.assertEquals("\"2011-01-09T13:49:53.254+08:00\"", out.toString());
  30. }
  31. public void test_2() throws Exception {
  32. SerializeWriter out = new SerializeWriter();
  33. JSONSerializer serializer = new JSONSerializer(out);
  34. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  35. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  36. serializer.write(new Date(1294552193000L));
  37. Assert.assertEquals("\"2011-01-09T13:49:53+08:00\"", out.toString());
  38. }
  39. public void test_3() throws Exception {
  40. SerializeWriter out = new SerializeWriter();
  41. JSONSerializer serializer = new JSONSerializer(out);
  42. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  43. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  44. serializer.write(new Date(1294502400000L));
  45. Assert.assertEquals("\"2011-01-09+08:00\"", out.toString());
  46. }
  47. public void test_4() throws Exception {
  48. SerializeWriter out = new SerializeWriter();
  49. JSONSerializer serializer = new JSONSerializer(out);
  50. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  51. serializer.config(SerializerFeature.UseSingleQuotes, true);
  52. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  53. serializer.write(new Date(1294502400000L));
  54. Assert.assertEquals("'2011-01-09+08:00'", out.toString());
  55. }
  56. public void test_5() throws Exception {
  57. SerializeWriter out = new SerializeWriter();
  58. JSONSerializer serializer = new JSONSerializer(out);
  59. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  60. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  61. serializer.write(new Date(1294502401000L));
  62. Assert.assertEquals("\"2011-01-09T00:00:01+08:00\"", out.toString());
  63. }
  64. public void test_6() throws Exception {
  65. SerializeWriter out = new SerializeWriter();
  66. JSONSerializer serializer = new JSONSerializer(out);
  67. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  68. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  69. serializer.write(new Date(1294502460000L));
  70. Assert.assertEquals("\"2011-01-09T00:01:00+08:00\"", out.toString());
  71. }
  72. public void test_7() throws Exception {
  73. SerializeWriter out = new SerializeWriter();
  74. JSONSerializer serializer = new JSONSerializer(out);
  75. serializer.config(SerializerFeature.UseISO8601DateFormat, true);
  76. Assert.assertEquals(true, serializer.isEnabled(SerializerFeature.UseISO8601DateFormat));
  77. serializer.write(new Date(1294506000000L));
  78. Assert.assertEquals("\"2011-01-09T01:00:00+08:00\"", out.toString());
  79. }
  80. public void test_8() throws Exception {
  81. String text = JSON.toJSONString(new Date(1294506000000L), SerializerFeature.UseISO8601DateFormat);
  82. Assert.assertEquals("\"2011-01-09T01:00:00+08:00\"", text);
  83. }
  84. public void test_9() throws Exception {
  85. String text = JSON.toJSONString(new Entity(new Date(1294506000000L)), SerializerFeature.UseISO8601DateFormat);
  86. Assert.assertEquals("{\"date\":\"2011-01-09T01:00:00+08:00\"}", text);
  87. Entity entity = JSON.parseObject(text, Entity.class);
  88. Assert.assertEquals(new Date(1294506000000L), entity.getDate());
  89. }
  90. public static class Entity {
  91. private Date date;
  92. public Entity(){
  93. }
  94. public Entity(Date date){
  95. super();
  96. this.date = date;
  97. }
  98. public Date getDate() {
  99. return date;
  100. }
  101. public void setDate(Date date) {
  102. this.date = date;
  103. }
  104. }
  105. }