package org.test4j.json.encoder.single.spec;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import org.junit.Test;
import org.test4j.json.helper.JSONFeature;
import org.test4j.junit.Test4J;
import org.test4j.tools.commons.DateHelper;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class DateEncoderTest extends Test4J {
@Test
public void testEncode() throws Exception {
Date date = DateHelper.parse("2011-08-01 08:11:41");
DateEncoder encoder = DateEncoder.instance;
encoder.setFeatures(JSONFeature.UseSingleQuote);
StringWriter writer = new StringWriter();
encoder.encode(date, writer, new ArrayList<String>());
String json = writer.toString();
want.string(json).eqIgnoreSpace("{#class:'Date',#value:'2011-08-01 08:11:41'}");
}
@Test
public void testEncode_NotFlagClazz() throws Exception {
Date date = DateHelper.parse("2011-08-01 08:11:41");
DateEncoder encoder = DateEncoder.instance;
encoder.setFeatures(JSONFeature.UseSingleQuote, JSONFeature.UnMarkClassFlag);
StringWriter writer = new StringWriter();
encoder.encode(date, writer, new ArrayList<String>());
String json = writer.toString();
System.out.println(json);
want.string(json).eqIgnoreSpace("'2011-08-01 08:11:41'");
}
@Test
public void testEncode_SQLDate() throws Exception {
Date time = DateHelper.parse("2011-08-01 08:11:41");
java.sql.Date date = new java.sql.Date(time.getTime());
DateEncoder encoder = DateEncoder.instance;
encoder.setFeatures(JSONFeature.UseSingleQuote);
StringWriter writer = new StringWriter();
encoder.encode(date, writer, new ArrayList<String>());
String json = writer.toString();
want.string(json).eqIgnoreSpace("{#class:'java.sql.Date@82ae8779',#value:'2011-08-01 08:11:41'}");
}
@Test
public void testEncode_SQLDate_NotFlagClazz() throws Exception {
Date time = DateHelper.parse("2011-08-01 08:11:41");
java.sql.Date date = new java.sql.Date(time.getTime());
DateEncoder encoder = DateEncoder.instance;
encoder.setFeatures(JSONFeature.UseSingleQuote, JSONFeature.UnMarkClassFlag);
StringWriter writer = new StringWriter();
encoder.encode(date, writer, new ArrayList<String>());
String json = writer.toString();
System.out.println(json);
want.string(json).eqIgnoreSpace("{#value:'2011-08-01 08:11:41'}");
}
}