package com.alibaba.json.bvt.serializer; import java.text.SimpleDateFormat; import java.util.Locale; import java.util.TimeZone; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.JSONSerializer; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializeWriter; import com.alibaba.fastjson.serializer.SerializerFeature; import junit.framework.TestCase; public class DateFormatSerializerTest extends TestCase { protected void setUp() throws Exception { JSON.defaultTimeZone = TimeZone.getTimeZone("Asia/Shanghai"); JSON.defaultLocale = Locale.CHINA; } public void test_date() throws Exception { Assert.assertEquals("{\"format\":null}", JSON.toJSONString(new VO(), SerializerFeature.WriteMapNullValue)); } public void test_date_2() throws Exception { SerializeWriter out = new SerializeWriter(); SerializeConfig config = new SerializeConfig(); JSONSerializer serializer = new JSONSerializer(out, config); serializer.config(SerializerFeature.WriteMapNullValue, true); serializer.write(new VO()); Assert.assertEquals("{\"format\":null}", out.toString()); } public void test_date_3() throws Exception { SerializeWriter out = new SerializeWriter(); SerializeConfig config = new SerializeConfig(); JSONSerializer serializer = new JSONSerializer(out, config); serializer.config(SerializerFeature.WriteClassName, true); serializer.write(new VO()); Assert.assertEquals("{\"@type\":\"com.alibaba.json.bvt.serializer.DateFormatSerializerTest$VO\"}", out.toString()); } public void test_date_4() throws Exception { SerializeWriter out = new SerializeWriter(); SerializeConfig config = new SerializeConfig(); JSONSerializer serializer = new JSONSerializer(out, config); SimpleDateFormat format = new SimpleDateFormat("yyyy"); format.setTimeZone(JSON.defaultTimeZone); serializer.write(new VO(format)); Assert.assertEquals("{\"format\":\"yyyy\"}", out.toString()); JSON.parseObject(out.toString(), VO.class); } private static class VO { private SimpleDateFormat format; public VO(){ } public VO(SimpleDateFormat format){ this.format = format; } public SimpleDateFormat getFormat() { return format; } public void setFormat(SimpleDateFormat format) { this.format = format; } } }