/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.web.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * JSONUtil单元测试 * * @author wangwei */ public class JSONUtilTest { private static Logger logger = LoggerFactory.getLogger(JSONUtilTest.class); @Test public void testToJSONByObject() { JSONModel model = new JSONModel(); model.setId(1); model.setMoney(1.1f); model.setName("中文"); Calendar calendar = Calendar.getInstance(); calendar.set(2009, 0, 1); model.setBrithDate(new Date(calendar.getTimeInMillis())); String jsonString = JSONUtil.toJSON(model); logger.info(jsonString); Assert.assertEquals(jsonString, "{\"name\":\"中文\",\"id\":1,\"brithDate\":\"2009-01-01\",\"money\":1.1}"); } @Test public void testToJSONByObjectDateFormat(){ JSONModel model = new JSONModel(); model.setId(1); model.setMoney(1.1f); model.setName("中文"); Calendar calendar = Calendar.getInstance(); calendar.set(2009, 0, 1); model.setBrithDate(new Date(calendar.getTimeInMillis())); String jsonString = JSONUtil.toJSON(model,new SimpleDateFormat("yyyy年MM月dd日")); logger.info(jsonString); Assert.assertEquals(jsonString, "{\"name\":\"中文\",\"id\":1,\"brithDate\":\"2009年01月01日\",\"money\":1.1}"); } @Test public void testToJSONByArrayObject() { JSONModel model = new JSONModel(); model.setId(1); model.setMoney(1.1f); model.setName("中文"); JSONModel[] array = new JSONModel[]{model, model}; String jsonString = JSONUtil.toJSON(array); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1}]"); } @Test public void testToJSONByListObject() { JSONModel model = new JSONModel(); model.setId(1); model.setMoney(1.1f); model.setName("中文"); List<JSONModel> list = new ArrayList<JSONModel>(); list.add(model); list.add(model); String jsonString = JSONUtil.toJSON(list); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1}]"); } @Test public void testToJSONByMap() { Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("name", "中文"); map.put("id", 1); map.put("brithDate", null); map.put("money", 1.1f); String jsonString = JSONUtil.toJSON(map); logger.info(jsonString); Assert.assertEquals(jsonString, "{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1}"); } @Test @SuppressWarnings("unchecked") public void testToJSONByArrayMap() { Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("name", "中文"); map.put("id", 1); map.put("brithDate", null); map.put("money", 1.1f); Map<String, Object>[] array = new Map[2]; array[0] = map; array[1] = map; String jsonString = JSONUtil.toJSON(array); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1}]"); } @Test public void testToJSONByListMap() { Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("name", "中文"); map.put("id", 1); map.put("brithDate", null); map.put("money", 1.1f); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); list.add(map); list.add(map); String jsonString = JSONUtil.toJSON(list); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1}]"); } @Test public void testCreateMapByArray() { String[] aliases = new String[]{"name", "id", "brithDate", "money"}; Object[] values = new Object[]{"中文", 1, null, 1.1f}; Map<String, Object> map = JSONUtil.createMap(aliases, values); Assert.assertTrue(map.size() == 4); Assert.assertEquals(map.get("name"), "中文"); Assert.assertEquals(map.get("money"), 1.1f); } @Test public void testCreateMapByList() { List<String> aliases = new ArrayList<String>(); aliases.add("name"); aliases.add("id"); aliases.add("brithDate"); aliases.add("money"); List<Object> values = new ArrayList<Object>(); values.add("中文"); values.add(1); values.add(null); values.add(1.1f); Map<String, Object> map = JSONUtil.createMap(aliases, values); Assert.assertTrue(map.size() == 4); Assert.assertEquals(map.get("name"), "中文"); Assert.assertEquals(map.get("money"), 1.1f); } /** * unit test JSONString.toJSON(String[] aliases,List<Object[]> values) */ @Test public void testToJSONArrayCompound() { String[] aliases = new String[]{"name", "id", "brithDate", "money"}; List<Object[]> values = new ArrayList<Object[]>(); values.add(new Object[]{"中文", 1, null, 1.1f}); values.add(new Object[]{"中文1", 2, null, 2.1f}); String jsonString = JSONUtil.toJSON(aliases, values); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文1\",\"id\":2,\"brithDate\":null,\"money\":2.1}]"); } /** * unit test JSONString.toJSON(List<String> aliases,List<List<Object>> values) */ @Test public void testToJSONListCompound() { List<String> aliases =Arrays.asList(new String[]{"name", "id", "brithDate", "money"}); List<List<Object>> values = new ArrayList<List<Object>>(); values.add(Arrays.asList(new Object[]{"中文", 1, null, 1.1f})); values.add(Arrays.asList(new Object[]{"中文1", 2, null, 2.1f})); String jsonString = JSONUtil.toJSON(aliases, values); logger.info(jsonString); Assert.assertEquals(jsonString, "[{\"name\":\"中文\",\"id\":1,\"brithDate\":null,\"money\":1.1},{\"name\":\"中文1\",\"id\":2,\"brithDate\":null,\"money\":2.1}]"); } }