package com.alibaba.json.bvt.serializer;
import java.io.IOException;
import java.io.StringWriter;
import java.util.AbstractCollection;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import junit.framework.Assert;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSONAware;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONStreamAware;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class JSONSerializerTest extends TestCase {
public void test_0() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new C());
Assert.assertEquals("[]", serializer.getWriter().toString());
}
public void test_0_s() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new C());
Assert.assertEquals("[]", serializer.getWriter().toString());
}
public void test_1() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(Collections.singletonList(1));
Assert.assertEquals("[1]", serializer.getWriter().toString());
}
public void test_1_s() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(Collections.singletonList(1));
Assert.assertEquals("[1]", serializer.getWriter().toString());
}
public void test_2() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(Collections.EMPTY_MAP);
Assert.assertEquals("{}", serializer.getWriter().toString());
}
public void test_2_s() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(Collections.EMPTY_MAP);
Assert.assertEquals("{}", serializer.getWriter().toString());
}
public void test_3() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new JSONAware() {
public String toJSONString() {
return "null";
}
});
Assert.assertEquals("null", serializer.getWriter().toString());
}
public void test_3_s() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new JSONAware() {
public String toJSONString() {
return "null";
}
});
Assert.assertEquals("null", serializer.getWriter().toString());
}
public void test_4() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new JSONStreamAware() {
public void writeJSONString(Appendable out) throws IOException {
out.append("abc");
}
});
Assert.assertEquals("abc", serializer.getWriter().toString());
}
public void test_error() throws Exception {
JSONException error = null;
try {
StringWriter out = new StringWriter();
JSONSerializer serializer = new JSONSerializer();
serializer.write(new JSONStreamAware() {
public void writeJSONString(Appendable out) throws IOException {
throw new IOException();
}
});
} catch (JSONException e) {
error = e;
}
Assert.assertNotNull(error);
}
public void test_5() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new A(3));
Assert.assertEquals("{\"id\":3}", serializer.getWriter().toString());
}
public void test_5_null() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.config(SerializerFeature.WriteMapNullValue, true);
serializer.write(new A(null));
Assert.assertEquals("{\"id\":null}", serializer.getWriter().toString());
}
public void test_6() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Date(1293805405498L));
Assert.assertEquals("1293805405498", serializer.getWriter().toString());
}
public void test_7() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new B(1293805405498L));
Assert.assertEquals("{\"d\":1293805405498}", serializer.getWriter().toString());
}
public void test_8() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new B());
Assert.assertEquals("{}", serializer.getWriter().toString());
}
public void test_9() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new D(3L));
Assert.assertEquals("{\"id\":3}", serializer.getWriter().toString());
}
public void test_9_null() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.config(SerializerFeature.WriteMapNullValue, true);
serializer.write(new D(null));
Assert.assertEquals("{\"id\":null}", serializer.getWriter().toString());
}
public void test_10() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(3);
Assert.assertEquals("3", serializer.getWriter().toString());
}
public void test_11() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(3L);
Assert.assertEquals("3", serializer.getWriter().toString());
}
public void test_12() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[0]);
Assert.assertEquals("[]", serializer.getWriter().toString());
}
public void test_13() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[] { 1 });
Assert.assertEquals("[1]", serializer.getWriter().toString());
}
public void test_14() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[] { 1, 2, 3, 4 });
Assert.assertEquals("[1,2,3,4]", serializer.getWriter().toString());
}
public void test_15() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[] { 1L, 2L, 3L, 4L });
Assert.assertEquals("[1,2,3,4]", serializer.getWriter().toString());
}
public void test_16() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[] { "", "", "", "" });
Assert.assertEquals("[\"\",\"\",\"\",\"\"]", serializer.getWriter().toString());
}
public void test_17() throws Exception {
JSONSerializer serializer = new JSONSerializer();
serializer.write(new Object[] { null, null, null, null });
Assert.assertEquals("[null,null,null,null]", serializer.getWriter().toString());
}
public static class A {
private Integer id;
public A(Integer id){
super();
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
public static class B {
private Date d;
public B(){
}
public B(long value){
super();
this.d = new Date(value);
}
public Date getD() {
return d;
}
public void setD(Date d) {
this.d = d;
}
}
public static class D {
private Long id;
public D(Long id){
super();
this.id = id;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
public static class C extends AbstractCollection {
@Override
public Iterator iterator() {
return Collections.EMPTY_LIST.iterator();
}
@Override
public int size() {
return 0;
}
}
}