package com.alibaba.json.bvt.bug;
import com.alibaba.fastjson.JSON;
import junit.framework.TestCase;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by wuwen on 2017/2/16.
*/
public class Issue1013 extends TestCase {
public void test_for_issue() throws Exception {
TestDomain domain = new TestDomain();
String json = JSON.toJSONString(domain);
TestDomain domain1 = JSON.parseObject(json, TestDomain.class);
assertEquals(domain.getList(), domain1.getList());
}
public void test_for_issue_1() throws Exception {
TestDomain domain1 = JSON.parseObject("{\"list\":[]}", TestDomain.class);
TestDomain domain2 = JSON.parseObject("{\"list\":[1, 2]}", TestDomain.class);
assertEquals(0, domain1.getList().size());
assertEquals(Arrays.asList(1, 2), domain2.getList());
}
public void test_for_issue_2() throws Exception {
TestDomain domain1 = JSON.parseObject("{\"list\":null}", TestDomain.class);
assertEquals(1, domain1.getList().size());
}
public void test_for_issue3() throws Exception {
TestDomain2 domain = new TestDomain2();
String json = JSON.toJSONString(domain);
TestDomain2 domain1 = JSON.parseObject(json, TestDomain2.class);
assertEquals(domain.list, domain1.list);
}
public void test_for_issue_4() throws Exception {
TestDomain2 domain1 = JSON.parseObject("{\"list\":[1, 2]}", TestDomain2.class);
assertEquals(Arrays.asList(1, 2), domain1.list);
}
public void test_for_issue_5() throws Exception {
TestDomain2 domain1 = JSON.parseObject("{\"list\":null}", TestDomain2.class);
assertNull(domain1.list);
}
public void test_for_issue_6() throws Exception {
TestDomain3 domain3 = JSON.parseObject("{\"list\":null}", TestDomain3.class);
assertNull(domain3.list);
}
static class TestDomain {
private List<Integer> list;
public TestDomain(){
list = new ArrayList<Integer>();
list.add(1);
}
public List<Integer> getList(){
return list;
}
}
static class TestDomain2 {
public List<Integer> list;
public TestDomain2(){
list = new ArrayList<Integer>();
list.add(1);
}
}
static class TestDomain3 {
private List<Integer> list;
public TestDomain3(){
list = new ArrayList<Integer>();
list.add(1);
}
public List<Integer> getList(){
return list;
}
public void setList(List<Integer> list) {
this.list = list;
}
}
}