package com.alibaba.json.bvt.parser.deser.list; import java.util.Map; import java.util.TreeSet; import org.junit.Assert; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.TypeReference; import junit.framework.TestCase; public class ListStringFieldTest_dom_treeSet extends TestCase { public void test_list() throws Exception { String text = "{\"values\":[\"a\",\"b\",\"ab\\\\c\"]}"; Model model = JSON.parseObject(text, Model.class); Assert.assertEquals(3, model.values.size()); Assert.assertTrue(model.values.contains("a")); Assert.assertTrue(model.values.contains("b")); Assert.assertTrue(model.values.contains("ab\\c")); } public void test_null() throws Exception { String text = "{\"values\":null}"; Model model = JSON.parseObject(text, Model.class); Assert.assertNull(model.values); } public void test_empty() throws Exception { String text = "{\"values\":[]}"; Model model = JSON.parseObject(text, Model.class); Assert.assertEquals(0, model.values.size()); } public void test_map_empty() throws Exception { String text = "{\"model\":{\"values\":[]}}"; Map<String, Model> map = JSON.parseObject(text, new TypeReference<Map<String, Model>>() { }); Model model = (Model) map.get("model"); Assert.assertEquals(0, model.values.size()); } public void test_notMatch() throws Exception { String text = "{\"value\":[]}"; Model model = JSON.parseObject(text, Model.class); Assert.assertNull(model.values); } public void test_error() throws Exception { String text = "{\"values\":[1"; Exception error = null; try { Model model = JSON.parseObject(text, Model.class); } catch (JSONException ex) { error = ex; } Assert.assertNotNull(error); } public void test_error_1() throws Exception { String text = "{\"values\":[\"b\"["; Exception error = null; try { Model model = JSON.parseObject(text, Model.class); } catch (JSONException ex) { error = ex; } Assert.assertNotNull(error); } public void test_error_2() throws Exception { String text = "{\"model\":{\"values\":[]["; Exception error = null; try { JSON.parseObject(text, new TypeReference<Map<String, Model>>() { }); } catch (JSONException ex) { error = ex; } Assert.assertNotNull(error); } public void test_error_3() throws Exception { String text = "{\"model\":{\"values\":[]}["; Exception error = null; try { JSON.parseObject(text, new TypeReference<Map<String, Model>>() { }); } catch (JSONException ex) { error = ex; } Assert.assertNotNull(error); } public static class Model { private TreeSet<String> values; public TreeSet<String> getValues() { return values; } public void setValues(TreeSet<String> values) { this.values = values; } } }