package com.alibaba.json.bvt.serializer;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import junit.framework.Assert;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.MapSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class MapSerializerTest extends TestCase {
public void test_empty_1() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), Collections.EMPTY_MAP, null, null);
Assert.assertEquals("{}", out.toString());
}
public void test_singleton_1() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), Collections.singletonMap("A", 1), null, null);
Assert.assertEquals("{\"A\":1}", out.toString());
}
public void test_int2_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
Map<String, Integer> map = new LinkedHashMap<String, Integer>();
map.put("A", 1);
map.put("B", 2);
mapSerializer.write(new JSONSerializer(out), map, null, null);
Assert.assertEquals("{\"A\":1,\"B\":2}", out.toString());
}
public void test_long2_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
Map<String, Long> map = new LinkedHashMap<String, Long>();
map.put("A", 1L);
map.put("B", 2L);
mapSerializer.write(new JSONSerializer(out), map, null, null);
Assert.assertEquals("{\"A\":1,\"B\":2}", out.toString());
}
public void test_string2_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("A", "1");
map.put("B", "2");
mapSerializer.write(new JSONSerializer(out), map, null, null);
Assert.assertEquals("{\"A\":\"1\",\"B\":\"2\"}", out.toString());
}
public void test_string3_s() throws Exception {
SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.config(SerializerFeature.UseSingleQuotes, true);
MapSerializer mapSerializer = new MapSerializer();
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("A", "1");
map.put("B", "2");
mapSerializer.write(serializer, map, null, null);
Assert.assertEquals("{'A':'1','B':'2'}", out.toString());
}
public void test_special_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), Collections.singletonMap("A\nB", 1), null, null);
Assert.assertEquals("{\"A\\nB\":1}", out.toString());
}
public void test_special2_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), Collections.singletonMap("A\nB", 1), null, null);
Assert.assertEquals("{\"A\\nB\":1}", out.toString());
}
public void test_special3_s() throws Exception {
SerializeWriter out = new SerializeWriter();
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), Collections.singletonMap("A\nB", Collections.EMPTY_MAP), null, null);
Assert.assertEquals("{\"A\\nB\":{}}", out.toString());
}
public void test_4() throws Exception {
SerializeWriter out = new SerializeWriter();
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("TOP", "value");
map.put("bytes", new byte[] { 1, 2 });
MapSerializer mapSerializer = new MapSerializer();
mapSerializer.write(new JSONSerializer(out), map, null, null);
String text = out.toString();
Assert.assertEquals("{\"TOP\":\"value\",\"bytes\":\"AQI=\"}", text);
JSONObject json = JSON.parseObject(text);
byte[] bytes = json.getBytes("bytes");
Assert.assertEquals(1, bytes[0]);
Assert.assertEquals(2, bytes[1]);
Assert.assertEquals(2, bytes.length);
}
}