package com.alibaba.json.bvt.serializer;
import java.io.StringWriter;
import junit.framework.Assert;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class StringSerializerTest extends TestCase {
public void test_0() throws Exception {
Assert.assertEquals("{\"value\":null}", JSON.toJSONString(
new TestEntity(null), SerializerFeature.WriteMapNullValue));
SerializeWriter out = new SerializeWriter();
JSONSerializer.write(out, (Object) "123");
Assert.assertEquals("\"123\"", out.toString());
JSONSerializer.write(out, (Object) "456");
Assert.assertEquals("\"123\"\"456\"", out.toString());
}
public void test_2() throws Exception {
StringWriter out = new StringWriter();
JSONSerializer.write(out, new TestEntity(null));
Assert.assertEquals("{}", out.toString());
}
public void test_2_s() throws Exception {
SerializeWriter out = new SerializeWriter();
JSONSerializer.write(out, new TestEntity(null));
Assert.assertEquals("{}", out.toString());
}
public void test_3() throws Exception {
SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.config(SerializerFeature.UseSingleQuotes, true);
serializer.write(new TestEntity("张三"));
Assert.assertEquals("{'value':'张三'}", out.toString());
}
public void test_4() throws Exception {
StringWriter out = new StringWriter();
JSONSerializer.write(out, new TestEntity("张三"));
Assert.assertEquals("{\"value\":\"张三\"}", out.toString());
}
public void test_5() throws Exception {
SerializeWriter out = new SerializeWriter();
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString(null);
Assert.assertEquals("null", out.toString());
}
public void test_5_d() throws Exception {
SerializeWriter out = new SerializeWriter();
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString(null);
Assert.assertEquals("null", out.toString());
}
public void test_6() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString(null);
Assert.assertEquals("null", out.toString());
}
public void test_6_d() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString(null);
Assert.assertEquals("null", out.toString());
}
public void test_7() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString("中国");
Assert.assertEquals("'中国'", out.toString());
}
public void test_7_d() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.UseSingleQuotes, false);
out.writeString("中国");
Assert.assertEquals("\"中国\"", out.toString());
}
public void test_8() throws Exception {
SerializeWriter out = new SerializeWriter();
out = new SerializeWriter();
out.config(SerializerFeature.UseSingleQuotes, false);
out.writeString("\na\nb\nc\nd\"'");
Assert.assertEquals("\"\\na\\nb\\nc\\nd\\\"'\"", out.toString());
}
public void test_8_s() throws Exception {
SerializeWriter out = new SerializeWriter();
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString("\na\nb\nc\nd\"'");
Assert.assertEquals("'\\na\\nb\\nc\\nd\"\\''", out.toString());
}
public void test_9() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeFieldName("\na\nb\nc\nd\"'e");
Assert.assertEquals("'\\na\\nb\\nc\\nd\"\\'e':", out.toString());
}
public void test_9_d() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.writeFieldName("\na\nb\nc\nd\"'e");
Assert.assertEquals("\"\\na\\nb\\nc\\nd\\\"'e\":", out.toString());
}
public void test_10() throws Exception {
SerializeWriter out = new SerializeWriter();
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeFieldName("123\na\nb\nc\nd\"'e");
Assert.assertEquals("'123\\na\\nb\\nc\\nd\"\\'e':", out.toString());
}
public void test_10_d() throws Exception {
SerializeWriter out = new SerializeWriter();
out.writeFieldName("123\na\nb\nc\nd\"'e", true);
Assert.assertEquals("\"123\\na\\nb\\nc\\nd\\\"'e\":", out.toString());
}
public void test_11() throws Exception {
SerializeWriter out = new SerializeWriter();
out.config(SerializerFeature.QuoteFieldNames, true);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeFieldName("123\na\nb\nc\nd\"'e");
Assert.assertEquals("'123\\na\\nb\\nc\\nd\"\\'e':", out.toString());
}
public void test_11_d() throws Exception {
SerializeWriter out = new SerializeWriter();
out.writeKeyWithDoubleQuote("123\na\nb\nc\nd\"'e");
Assert.assertEquals("\"123\\na\\nb\\nc\\nd\\\"'e\":", out.toString());
}
public void test_12() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.config(SerializerFeature.QuoteFieldNames, true);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeFieldName("123\na\nb\nc\nd\"'e");
Assert.assertEquals("'123\\na\\nb\\nc\\nd\"\\'e':", out.toString());
}
public void test_12_d() throws Exception {
SerializeWriter out = new SerializeWriter(1);
out.writeKeyWithDoubleQuote("123\na\nb\nc\nd\"'e");
Assert.assertEquals("\"123\\na\\nb\\nc\\nd\\\"'e\":", out.toString());
}
public void test_13() throws Exception {
SerializeWriter out = new SerializeWriter(4);
out.config(SerializerFeature.UseSingleQuotes, true);
out.writeString("1'");
Assert.assertEquals("'1\\''", out.toString());
}
public void test_14() throws Exception {
SerializeWriter out = new SerializeWriter(4);
out.config(SerializerFeature.UseSingleQuotes, false);
out.writeString("1\"");
Assert.assertEquals("\"1\\\"\"", out.toString());
}
public static class TestEntity {
private String value;
public TestEntity(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}