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; } } }