mirror of
https://gitee.com/dromara/hutool.git
synced 2026-02-09 09:16:26 +08:00
clean history
This commit is contained in:
199
hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java
Normal file
199
hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java
Normal file
@@ -0,0 +1,199 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.json.test.bean.Exam;
|
||||
import cn.hutool.json.test.bean.JsonNode;
|
||||
import cn.hutool.json.test.bean.KeyBean;
|
||||
|
||||
/**
|
||||
* JSONArray单元测试
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
public class JSONArrayTest {
|
||||
|
||||
@Test
|
||||
public void addTest() {
|
||||
// 方法1
|
||||
JSONArray array = JSONUtil.createArray();
|
||||
// 方法2
|
||||
// JSONArray array = new JSONArray();
|
||||
array.add("value1");
|
||||
array.add("value2");
|
||||
array.add("value3");
|
||||
|
||||
Assert.assertEquals(array.get(0), "value1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseTest() {
|
||||
String jsonStr = "[\"value1\", \"value2\", \"value3\"]";
|
||||
JSONArray array = JSONUtil.parseArray(jsonStr);
|
||||
Assert.assertEquals(array.get(0), "value1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseFileTest() {
|
||||
JSONArray array = JSONUtil.readJSONArray(FileUtil.file("exam_test.json"), CharsetUtil.CHARSET_UTF_8);
|
||||
|
||||
JSONObject obj0 = array.getJSONObject(0);
|
||||
Exam exam = JSONUtil.toBean(obj0, Exam.class);
|
||||
Assert.assertEquals("0", exam.getAnswerArray()[0].getSeq());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void parseBeanListTest() {
|
||||
KeyBean b1 = new KeyBean();
|
||||
b1.setAkey("aValue1");
|
||||
b1.setBkey("bValue1");
|
||||
KeyBean b2 = new KeyBean();
|
||||
b2.setAkey("aValue2");
|
||||
b2.setBkey("bValue2");
|
||||
|
||||
ArrayList<KeyBean> list = CollUtil.newArrayList(b1, b2);
|
||||
|
||||
JSONArray jsonArray = JSONUtil.parseArray(list);
|
||||
Console.log(jsonArray);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toListTest() {
|
||||
String jsonStr = FileUtil.readString("exam_test.json", CharsetUtil.CHARSET_UTF_8);
|
||||
JSONArray array = JSONUtil.parseArray(jsonStr);
|
||||
|
||||
List<Exam> list = array.toList(Exam.class);
|
||||
Assert.assertFalse(list.isEmpty());
|
||||
Assert.assertEquals(Exam.class, list.get(0).getClass());
|
||||
;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toListTest2() {
|
||||
String jsonArr = "[{\"id\":111,\"name\":\"test1\"},{\"id\":112,\"name\":\"test2\"}]";
|
||||
|
||||
JSONArray array = JSONUtil.parseArray(jsonArr);
|
||||
List<User> userList = JSONUtil.toList(array, User.class);
|
||||
|
||||
Assert.assertFalse(userList.isEmpty());
|
||||
Assert.assertEquals(User.class, userList.get(0).getClass());
|
||||
|
||||
Assert.assertEquals(Integer.valueOf(111), userList.get(0).getId());
|
||||
Assert.assertEquals(Integer.valueOf(112), userList.get(1).getId());
|
||||
|
||||
Assert.assertEquals("test1", userList.get(0).getName());
|
||||
Assert.assertEquals("test2", userList.get(1).getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toDictListTest() {
|
||||
String jsonArr = "[{\"id\":111,\"name\":\"test1\"},{\"id\":112,\"name\":\"test2\"}]";
|
||||
|
||||
JSONArray array = JSONUtil.parseArray(jsonArr);
|
||||
|
||||
List<Dict> list = JSONUtil.toList(array, Dict.class);
|
||||
|
||||
Assert.assertFalse(list.isEmpty());
|
||||
Assert.assertEquals(Dict.class, list.get(0).getClass());
|
||||
|
||||
Assert.assertEquals(Integer.valueOf(111), list.get(0).getInt("id"));
|
||||
Assert.assertEquals(Integer.valueOf(112), list.get(1).getInt("id"));
|
||||
|
||||
Assert.assertEquals("test1", list.get(0).getStr("name"));
|
||||
Assert.assertEquals("test2", list.get(1).getStr("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toArrayTest() {
|
||||
String jsonStr = FileUtil.readString("exam_test.json", CharsetUtil.CHARSET_UTF_8);
|
||||
JSONArray array = JSONUtil.parseArray(jsonStr);
|
||||
|
||||
Exam[] list = array.toArray(new Exam[0]);
|
||||
Assert.assertFalse(0 == list.length);
|
||||
Assert.assertEquals(Exam.class, list[0].getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* 单元测试用于测试在列表元素中有null时的情况下是否出错
|
||||
*/
|
||||
@Test
|
||||
public void toListWithNullTest() {
|
||||
String json = "[null,{'akey':'avalue','bkey':'bvalue'}]";
|
||||
JSONArray ja = JSONUtil.parseArray(json);
|
||||
|
||||
List<KeyBean> list = ja.toList(KeyBean.class);
|
||||
Assert.assertTrue(null == list.get(0));
|
||||
Assert.assertEquals("avalue", list.get(1).getAkey());
|
||||
Assert.assertEquals("bvalue", list.get(1).getBkey());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanListTest() {
|
||||
List<Map<String, String>> mapList = new ArrayList<>();
|
||||
mapList.add(buildMap("0", "0", "0"));
|
||||
mapList.add(buildMap("1", "1", "1"));
|
||||
mapList.add(buildMap("+0", "+0", "+0"));
|
||||
mapList.add(buildMap("-0", "-0", "-0"));
|
||||
JSONArray jsonArray = JSONUtil.parseArray(mapList);
|
||||
List<JsonNode> nodeList = jsonArray.toList(JsonNode.class);
|
||||
|
||||
Assert.assertEquals(Long.valueOf(0L), nodeList.get(0).getId());
|
||||
Assert.assertEquals(Long.valueOf(1L), nodeList.get(1).getId());
|
||||
Assert.assertEquals(Long.valueOf(0L), nodeList.get(2).getId());
|
||||
Assert.assertEquals(Long.valueOf(0L), nodeList.get(3).getId());
|
||||
|
||||
Assert.assertEquals(Integer.valueOf(0), nodeList.get(0).getParentId());
|
||||
Assert.assertEquals(Integer.valueOf(1), nodeList.get(1).getParentId());
|
||||
Assert.assertEquals(Integer.valueOf(0), nodeList.get(2).getParentId());
|
||||
Assert.assertEquals(Integer.valueOf(0), nodeList.get(3).getParentId());
|
||||
|
||||
Assert.assertEquals("0", nodeList.get(0).getName());
|
||||
Assert.assertEquals("1", nodeList.get(1).getName());
|
||||
Assert.assertEquals("+0", nodeList.get(2).getName());
|
||||
Assert.assertEquals("-0", nodeList.get(3).getName());
|
||||
}
|
||||
|
||||
private static Map<String, String> buildMap(String id, String parentId, String name) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("id", id);
|
||||
map.put("parentId", parentId);
|
||||
map.put("name", name);
|
||||
return map;
|
||||
}
|
||||
|
||||
class User {
|
||||
private Integer id;
|
||||
private String name;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return "User [id=" + id + ", name=" + name + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
106
hutool-json/src/test/java/cn/hutool/json/JSONConvertTest.java
Normal file
106
hutool-json/src/test/java/cn/hutool/json/JSONConvertTest.java
Normal file
@@ -0,0 +1,106 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.hutool.json.test.bean.ExamInfoDict;
|
||||
import cn.hutool.json.test.bean.PerfectEvaluationProductResVo;
|
||||
import cn.hutool.json.test.bean.UserInfoDict;
|
||||
|
||||
/**
|
||||
* JSON转换单元测试
|
||||
*
|
||||
* @author Looly,质量过关
|
||||
*
|
||||
*/
|
||||
public class JSONConvertTest {
|
||||
|
||||
@Test
|
||||
public void testBean2Json() {
|
||||
|
||||
UserInfoDict userInfoDict = new UserInfoDict();
|
||||
userInfoDict.setId(1);
|
||||
userInfoDict.setPhotoPath("yx.mm.com");
|
||||
userInfoDict.setRealName("质量过关");
|
||||
|
||||
ExamInfoDict examInfoDict = new ExamInfoDict();
|
||||
examInfoDict.setId(1);
|
||||
examInfoDict.setExamType(0);
|
||||
examInfoDict.setAnswerIs(1);
|
||||
|
||||
ExamInfoDict examInfoDict1 = new ExamInfoDict();
|
||||
examInfoDict1.setId(2);
|
||||
examInfoDict1.setExamType(0);
|
||||
examInfoDict1.setAnswerIs(0);
|
||||
|
||||
ExamInfoDict examInfoDict2 = new ExamInfoDict();
|
||||
examInfoDict2.setId(3);
|
||||
examInfoDict2.setExamType(1);
|
||||
examInfoDict2.setAnswerIs(0);
|
||||
|
||||
List<ExamInfoDict> examInfoDicts = new ArrayList<ExamInfoDict>();
|
||||
examInfoDicts.add(examInfoDict);
|
||||
examInfoDicts.add(examInfoDict1);
|
||||
examInfoDicts.add(examInfoDict2);
|
||||
|
||||
userInfoDict.setExamInfoDict(examInfoDicts);
|
||||
|
||||
Map<String, Object> tempMap = new HashMap<String, Object>();
|
||||
tempMap.put("userInfoDict", userInfoDict);
|
||||
tempMap.put("toSendManIdCard", 1);
|
||||
|
||||
JSONObject obj = JSONUtil.parseObj(tempMap);
|
||||
Assert.assertEquals(new Integer(1), obj.getInt("toSendManIdCard"));
|
||||
|
||||
JSONObject examInfoDictsJson = obj.getJSONObject("userInfoDict");
|
||||
Assert.assertEquals(new Integer(1), examInfoDictsJson.getInt("id"));
|
||||
Assert.assertEquals("质量过关", examInfoDictsJson.getStr("realName"));
|
||||
|
||||
Object id = JSONUtil.getByPath(obj, "userInfoDict.examInfoDict[0].id");
|
||||
Assert.assertEquals(1, id);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJson2Bean() {
|
||||
// language=JSON
|
||||
String examJson = "{\n" + " \"examInfoDicts\": {\n" + " \"id\": 1,\n" + " \"realName\": \"质量过关\",\n" //
|
||||
+ " \"examInfoDict\": [\n" + " {\n" + " \"id\": 1,\n" + " \"answerIs\": 1,\n" + " \"examType\": 0\n" //
|
||||
+ " },\n" + " {\n" + " \"id\": 2,\n" + " \"answerIs\": 0,\n" + " \"examType\": 0\n" + " },\n" //
|
||||
+ " {\n" + " \"id\": 3,\n" + " \"answerIs\": 0,\n" + " \"examType\": 1\n" + " }\n" + " ],\n" //
|
||||
+ " \"photoPath\": \"yx.mm.com\"\n" + " },\n" + " \"toSendManIdCard\": 1\n" + "}";
|
||||
|
||||
JSONObject jsonObject = JSONUtil.parseObj(examJson).getJSONObject("examInfoDicts");
|
||||
UserInfoDict userInfoDict = jsonObject.toBean(UserInfoDict.class);
|
||||
|
||||
Assert.assertEquals(userInfoDict.getId(), new Integer(1));
|
||||
Assert.assertEquals(userInfoDict.getRealName(), "质量过关");
|
||||
|
||||
//============
|
||||
|
||||
String jsonStr = "{\"id\":null,\"examInfoDict\":[{\"answerIs\":1, \"id\":null}]}";//JSONUtil.toJsonStr(userInfoDict1);
|
||||
JSONObject jsonObject2 = JSONUtil.parseObj(jsonStr);//.getJSONObject("examInfoDicts");
|
||||
UserInfoDict userInfoDict2 = jsonObject2.toBean(UserInfoDict.class);
|
||||
Assert.assertNull(userInfoDict2.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 针对Bean中Setter返回this测试是否可以成功调用Setter方法并注入
|
||||
*/
|
||||
@Test
|
||||
public void testJson2Bean2() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("evaluation.json");
|
||||
JSONObject obj = JSONUtil.parseObj(jsonStr);
|
||||
PerfectEvaluationProductResVo vo = obj.toBean(PerfectEvaluationProductResVo.class);
|
||||
|
||||
Assert.assertEquals(obj.getStr("HA001"), vo.getHA001());
|
||||
Assert.assertEquals(obj.getInt("costTotal"), vo.getCostTotal());
|
||||
}
|
||||
}
|
||||
460
hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java
Normal file
460
hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java
Normal file
@@ -0,0 +1,460 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.test.bean.JSONBean;
|
||||
import cn.hutool.json.test.bean.ResultDto;
|
||||
import cn.hutool.json.test.bean.Seq;
|
||||
import cn.hutool.json.test.bean.TokenAuthResponse;
|
||||
import cn.hutool.json.test.bean.TokenAuthWarp2;
|
||||
import cn.hutool.json.test.bean.UserA;
|
||||
import cn.hutool.json.test.bean.UserB;
|
||||
import cn.hutool.json.test.bean.UserWithMap;
|
||||
import cn.hutool.json.test.bean.report.CaseReport;
|
||||
import cn.hutool.json.test.bean.report.StepReport;
|
||||
import cn.hutool.json.test.bean.report.SuiteReport;
|
||||
|
||||
/**
|
||||
* JSONObject单元测试
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
public class JSONObjectTest {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void toStringTest() {
|
||||
String str = "{\"code\": 500, \"data\":null}";
|
||||
JSONObject jsonObject = new JSONObject(str);
|
||||
Console.log(jsonObject);
|
||||
jsonObject.getConfig().setIgnoreNullValue(true);
|
||||
Console.log(jsonObject.toStringPretty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringTest2() {
|
||||
String str = "{\"test\":\"关于开展2018年度“文明集体”、“文明职工”评选表彰活动的通知\"}";
|
||||
JSONObject json = new JSONObject(str);
|
||||
Assert.assertEquals(str, json.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试JSON中自定义日期格式输出正确性
|
||||
*/
|
||||
@Test
|
||||
public void toStringTest3() {
|
||||
JSONObject json = JSONUtil.createObj()//
|
||||
.put("dateTime", DateUtil.parse("2019-05-02 22:12:01"))//
|
||||
.setDateFormat(DatePattern.NORM_DATE_PATTERN);
|
||||
Assert.assertEquals("{\"dateTime\":\"2019-05-02\"}", json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringWithDateTest() {
|
||||
JSONObject json = JSONUtil.createObj().put("date", DateUtil.parse("2019-05-08 19:18:21"));
|
||||
Assert.assertEquals("{\"date\":1557314301000}", json.toString());
|
||||
|
||||
json = JSONUtil.createObj().put("date", DateUtil.parse("2019-05-08 19:18:21")).setDateFormat(DatePattern.NORM_DATE_PATTERN);
|
||||
Assert.assertEquals("{\"date\":\"2019-05-08\"}", json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putAllTest() {
|
||||
JSONObject json1 = JSONUtil.createObj();
|
||||
json1.put("a", "value1");
|
||||
json1.put("b", "value2");
|
||||
json1.put("c", "value3");
|
||||
json1.put("d", true);
|
||||
|
||||
JSONObject json2 = JSONUtil.createObj();
|
||||
json2.put("a", "value21");
|
||||
json2.put("b", "value22");
|
||||
|
||||
// putAll操作会覆盖相同key的值,因此a,b两个key的值改变,c的值不变
|
||||
json1.putAll(json2);
|
||||
|
||||
Assert.assertEquals(json1.get("a"), "value21");
|
||||
Assert.assertEquals(json1.get("b"), "value22");
|
||||
Assert.assertEquals(json1.get("c"), "value3");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseStringTest() {
|
||||
String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\", \"d\": true, \"e\": null}";
|
||||
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
|
||||
Assert.assertEquals(jsonObject.get("a"), "value1");
|
||||
Assert.assertEquals(jsonObject.get("b"), "value2");
|
||||
Assert.assertEquals(jsonObject.get("c"), "value3");
|
||||
Assert.assertEquals(jsonObject.get("d"), true);
|
||||
|
||||
Assert.assertTrue(jsonObject.containsKey("e"));
|
||||
Assert.assertEquals(jsonObject.get("e"), JSONNull.NULL);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseStringTest2() {
|
||||
String jsonStr = "{\"file_name\":\"RMM20180127009_731.000\",\"error_data\":\"201121151350701001252500000032 18973908335 18973908335 13601893517 201711211700152017112115135420171121 6594000000010100000000000000000000000043190101701001910072 100001100 \",\"error_code\":\"F140\",\"error_info\":\"最早发送时间格式错误,该字段可以为空,当不为空时正确填写格式为“YYYYMMDDHHMISS”\",\"app_name\":\"inter-pre-check\"}";
|
||||
JSONObject json = new JSONObject(jsonStr);
|
||||
Assert.assertEquals("F140", json.getStr("error_code"));
|
||||
Assert.assertEquals("最早发送时间格式错误,该字段可以为空,当不为空时正确填写格式为“YYYYMMDDHHMISS”", json.getStr("error_info"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseStringTest3() {
|
||||
String jsonStr = "{\"test\":\"体”、“文\"}";
|
||||
JSONObject json = new JSONObject(jsonStr);
|
||||
Assert.assertEquals("体”、“文", json.getStr("test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void parseStringWithBomTest() {
|
||||
String jsonStr = FileUtil.readUtf8String("f:/test/jsontest.txt");
|
||||
JSONObject json = new JSONObject(jsonStr);
|
||||
JSONObject json2 = JSONUtil.parseObj(json);
|
||||
Console.log(json);
|
||||
Console.log(json2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
JSONObject subJson = JSONUtil.createObj().put("value1", "strValue1").put("value2", "234");
|
||||
JSONObject json = JSONUtil.createObj().put("strValue", "strTest").put("intValue", 123)
|
||||
// 测试空字符串转对象
|
||||
.put("doubleValue", "").put("beanValue", subJson).put("list", JSONUtil.createArray().put("a").put("b")).put("testEnum", "TYPE_A");
|
||||
|
||||
TestBean bean = json.toBean(TestBean.class);
|
||||
Assert.assertEquals("a", bean.getList().get(0));
|
||||
Assert.assertEquals("b", bean.getList().get(1));
|
||||
|
||||
Assert.assertEquals("strValue1", bean.getBeanValue().getValue1());
|
||||
// BigDecimal转换检查
|
||||
Assert.assertEquals(new BigDecimal("234"), bean.getBeanValue().getValue2());
|
||||
// 枚举转换检查
|
||||
Assert.assertEquals(TestEnum.TYPE_A, bean.getTestEnum());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanNullStrTest() {
|
||||
JSONObject json = JSONUtil.createObj()//
|
||||
.put("strValue", "null")//
|
||||
.put("intValue", 123)//
|
||||
.put("beanValue", "null")//
|
||||
.put("list", JSONUtil.createArray().put("a").put("b"));
|
||||
|
||||
TestBean bean = json.toBean(TestBean.class);
|
||||
// 当JSON中为字符串"null"时应被当作字符串处理
|
||||
Assert.assertEquals("null", bean.getStrValue());
|
||||
// 当JSON中为字符串"null"时Bean中的字段类型不匹配应在ignoreError模式下忽略注入
|
||||
Assert.assertEquals(null, bean.getBeanValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest2() {
|
||||
UserA userA = new UserA();
|
||||
userA.setA("A user");
|
||||
userA.setName("{\n\t\"body\":{\n\t\t\"loginId\":\"id\",\n\t\t\"password\":\"pwd\"\n\t}\n}");
|
||||
userA.setDate(new Date());
|
||||
userA.setSqs(CollectionUtil.newArrayList(new Seq("seq1"), new Seq("seq2")));
|
||||
|
||||
JSONObject json = JSONUtil.parseObj(userA);
|
||||
UserA userA2 = json.toBean(UserA.class);
|
||||
// 测试数组
|
||||
Assert.assertEquals("seq1", userA2.getSqs().get(0).getSeq());
|
||||
// 测试带换行符等特殊字符转换是否成功
|
||||
Assert.assertTrue(StrUtil.isNotBlank(userA2.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest3() {
|
||||
String jsonStr = "{'data':{'userName':'ak','password': null}}";
|
||||
UserWithMap user = JSONUtil.toBean(JSONUtil.parseObj(jsonStr), UserWithMap.class);
|
||||
String password = user.getData().get("password");
|
||||
Assert.assertTrue(user.getData().containsKey("password"));
|
||||
Assert.assertNull(password);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest4() {
|
||||
String json = "{\"data\":{\"b\": \"c\"}}";
|
||||
|
||||
UserWithMap map = JSONUtil.toBean(json, UserWithMap.class);
|
||||
Assert.assertEquals("c", map.getData().get("b"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest5() {
|
||||
String readUtf8Str = ResourceUtil.readUtf8Str("suiteReport.json");
|
||||
JSONObject json = JSONUtil.parseObj(readUtf8Str);
|
||||
SuiteReport bean = json.toBean(SuiteReport.class);
|
||||
|
||||
// 第一层
|
||||
List<CaseReport> caseReports = bean.getCaseReports();
|
||||
CaseReport caseReport = caseReports.get(0);
|
||||
Assert.assertNotNull(caseReport);
|
||||
|
||||
// 第二层
|
||||
List<StepReport> stepReports = caseReports.get(0).getStepReports();
|
||||
StepReport stepReport = stepReports.get(0);
|
||||
Assert.assertNotNull(stepReport);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在JSON转Bean过程中,Bean中字段如果为父类定义的泛型类型,则应正确转换,此方法用于测试这类情况
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest6() {
|
||||
JSONObject json = JSONUtil.createObj().put("targetUrl", "http://test.com").put("success", "true").put("result", JSONUtil.createObj().put("token", "tokenTest").put("userId", "测试用户1"));
|
||||
|
||||
TokenAuthWarp2 bean = json.toBean(TokenAuthWarp2.class);
|
||||
Assert.assertEquals("http://test.com", bean.getTargetUrl());
|
||||
Assert.assertEquals("true", bean.getSuccess());
|
||||
|
||||
TokenAuthResponse result = bean.getResult();
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals("tokenTest", result.getToken());
|
||||
Assert.assertEquals("测试用户1", result.getUserId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 泛型对象中的泛型参数如果未定义具体类型,按照JSON处理<br>
|
||||
* 此处用于测试获取泛型类型实际类型错误导致的空指针问题
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest7() {
|
||||
String jsonStr = " {\"result\":{\"phone\":\"15926297342\",\"appKey\":\"e1ie12e1ewsdqw1\",\"secret\":\"dsadadqwdqs121d1e2\",\"message\":\"hello world\"},\"code\":100,\"message\":\"validate message\"}";
|
||||
ResultDto<?> dto = JSONUtil.toBean(jsonStr, ResultDto.class);
|
||||
Assert.assertEquals("validate message", dto.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseBeanTest() {
|
||||
UserA userA = new UserA();
|
||||
userA.setName("nameTest");
|
||||
userA.setDate(new Date());
|
||||
userA.setSqs(CollectionUtil.newArrayList(new Seq(null), new Seq("seq2")));
|
||||
|
||||
JSONObject json = JSONUtil.parseObj(userA, false);
|
||||
Assert.assertTrue(json.containsKey("a"));
|
||||
Assert.assertTrue(json.getJSONArray("sqs").getJSONObject(0).containsKey("seq"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseBeanTest2() {
|
||||
TestBean bean = new TestBean();
|
||||
bean.setDoubleValue(111.1);
|
||||
bean.setIntValue(123);
|
||||
bean.setList(CollUtil.newArrayList("a", "b", "c"));
|
||||
bean.setStrValue("strTest");
|
||||
bean.setTestEnum(TestEnum.TYPE_B);
|
||||
|
||||
JSONObject json = JSONUtil.parseObj(bean, false);
|
||||
// 枚举转换检查
|
||||
Assert.assertEquals("TYPE_B", json.get("testEnum"));
|
||||
|
||||
TestBean bean2 = json.toBean(TestBean.class);
|
||||
Assert.assertEquals(bean.toString(), bean2.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseBeanTest3() {
|
||||
JSONObject json = JSONUtil.createObj().put("code", 22).put("data", "{\"jobId\": \"abc\", \"videoUrl\": \"http://a.com/a.mp4\"}");
|
||||
|
||||
JSONBean bean = json.toBean(JSONBean.class);
|
||||
Assert.assertEquals(22, bean.getCode());
|
||||
Assert.assertEquals("abc", bean.getData().getObj("jobId"));
|
||||
Assert.assertEquals("http://a.com/a.mp4", bean.getData().getObj("videoUrl"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beanTransTest() {
|
||||
UserA userA = new UserA();
|
||||
userA.setA("A user");
|
||||
userA.setName("nameTest");
|
||||
userA.setDate(new Date());
|
||||
|
||||
JSONObject userAJson = JSONUtil.parseObj(userA);
|
||||
UserB userB = JSONUtil.toBean(userAJson, UserB.class);
|
||||
|
||||
Assert.assertEquals(userA.getName(), userB.getName());
|
||||
Assert.assertEquals(userA.getDate(), userB.getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beanTransTest2() {
|
||||
UserA userA = new UserA();
|
||||
userA.setA("A user");
|
||||
userA.setName("nameTest");
|
||||
userA.setDate(DateUtil.parse("2018-10-25"));
|
||||
|
||||
JSONObject userAJson = JSONUtil.parseObj(userA);
|
||||
// 自定义日期格式
|
||||
userAJson.setDateFormat("yyyy-MM-dd");
|
||||
|
||||
UserA bean = JSONUtil.toBean(userAJson.toString(), UserA.class);
|
||||
Assert.assertEquals(DateUtil.parse("2018-10-25"), bean.getDate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beanTransTest3() {
|
||||
JSONObject userAJson = JSONUtil.createObj().put("a", "AValue").put("name", "nameValue").put("date", "08:00:00");
|
||||
UserA bean = JSONUtil.toBean(userAJson.toString(), UserA.class);
|
||||
Assert.assertEquals(DateUtil.today() + " 08:00:00", DateUtil.date(bean.getDate()).toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseFromBeanTest() {
|
||||
UserA userA = new UserA();
|
||||
userA.setA(null);
|
||||
userA.setName("nameTest");
|
||||
userA.setDate(new Date());
|
||||
|
||||
JSONObject userAJson = JSONUtil.parseObj(userA);
|
||||
Assert.assertFalse(userAJson.containsKey("a"));
|
||||
|
||||
JSONObject userAJsonWithNullValue = JSONUtil.parseObj(userA, false);
|
||||
Assert.assertTrue(userAJsonWithNullValue.containsKey("a"));
|
||||
Assert.assertTrue(userAJsonWithNullValue.containsKey("sqs"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void specialCharTest() {
|
||||
String json = "{\"pattern\": \"[abc]\b\u2001\", \"pattern2Json\": {\"patternText\": \"[ab]\\b\"}}";
|
||||
JSONObject obj = JSONUtil.parseObj(json);
|
||||
Assert.assertEquals("[abc]\\b\\u2001", obj.getStrEscaped("pattern"));
|
||||
Assert.assertEquals("{\"patternText\":\"[ab]\\b\"}", obj.getStrEscaped("pattern2Json"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStrTest() {
|
||||
String json = "{\"name\": \"yyb\\nbbb\"}";
|
||||
JSONObject jsonObject = JSONUtil.parseObj(json);
|
||||
|
||||
// 没有转义按照默认规则显示
|
||||
Assert.assertEquals("yyb\nbbb", jsonObject.getStr("name"));
|
||||
// 转义按照字符串显示
|
||||
Assert.assertEquals("yyb\\nbbb", jsonObject.getStrEscaped("name"));
|
||||
|
||||
String bbb = jsonObject.getStr("bbb", "defaultBBB");
|
||||
Console.log(bbb);
|
||||
}
|
||||
|
||||
public static enum TestEnum {
|
||||
TYPE_A, TYPE_B
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试Bean
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
public static class TestBean {
|
||||
private String strValue;
|
||||
private int intValue;
|
||||
private Double doubleValue;
|
||||
private subBean beanValue;
|
||||
private List<String> list;
|
||||
private TestEnum testEnum;
|
||||
|
||||
public String getStrValue() {
|
||||
return strValue;
|
||||
}
|
||||
|
||||
public void setStrValue(String strValue) {
|
||||
this.strValue = strValue;
|
||||
}
|
||||
|
||||
public int getIntValue() {
|
||||
return intValue;
|
||||
}
|
||||
|
||||
public void setIntValue(int intValue) {
|
||||
this.intValue = intValue;
|
||||
}
|
||||
|
||||
public Double getDoubleValue() {
|
||||
return doubleValue;
|
||||
}
|
||||
|
||||
public void setDoubleValue(Double doubleValue) {
|
||||
this.doubleValue = doubleValue;
|
||||
}
|
||||
|
||||
public subBean getBeanValue() {
|
||||
return beanValue;
|
||||
}
|
||||
|
||||
public void setBeanValue(subBean beanValue) {
|
||||
this.beanValue = beanValue;
|
||||
}
|
||||
|
||||
public List<String> getList() {
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setList(List<String> list) {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
public TestEnum getTestEnum() {
|
||||
return testEnum;
|
||||
}
|
||||
|
||||
public void setTestEnum(TestEnum testEnum) {
|
||||
this.testEnum = testEnum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "TestBean [strValue=" + strValue + ", intValue=" + intValue + ", doubleValue=" + doubleValue + ", beanValue=" + beanValue + ", list=" + list + ", testEnum=" + testEnum + "]";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试子Bean
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
public static class subBean {
|
||||
private String value1;
|
||||
private BigDecimal value2;
|
||||
|
||||
public String getValue1() {
|
||||
return value1;
|
||||
}
|
||||
|
||||
public void setValue1(String value1) {
|
||||
this.value1 = value1;
|
||||
}
|
||||
|
||||
public BigDecimal getValue2() {
|
||||
return value2;
|
||||
}
|
||||
|
||||
public void setValue2(BigDecimal value2) {
|
||||
this.value2 = value2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "subBean [value1=" + value1 + ", value2=" + value2 + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
22
hutool-json/src/test/java/cn/hutool/json/JSONPathTest.java
Normal file
22
hutool-json/src/test/java/cn/hutool/json/JSONPathTest.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* JSON路径单元测试
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class JSONPathTest {
|
||||
|
||||
@Test
|
||||
public void getByPathTest() {
|
||||
String json = "[{\"id\":\"1\",\"name\":\"xingming\"},{\"id\":\"2\",\"name\":\"mingzi\"}]";
|
||||
Object value = JSONUtil.parseArray(json).getByPath("[0].name");
|
||||
Assert.assertEquals("xingming", value);
|
||||
value = JSONUtil.parseArray(json).getByPath("[1].name");
|
||||
Assert.assertEquals("mingzi", value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* JSON字符串格式化单元测试
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class JSONStrFormaterTest {
|
||||
|
||||
@Test
|
||||
public void formatTest() {
|
||||
String json = "{'age':23,'aihao':['pashan','movies'],'name':{'firstName':'zhang','lastName':'san','aihao':['pashan','movies','name':{'firstName':'zhang','lastName':'san','aihao':['pashan','movies']}]}}";
|
||||
String result = JSONStrFormater.format(json);
|
||||
Assert.assertNotNull(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void formatTest2() {
|
||||
String json = "{\"abc\":{\"def\":\"\\\"[ghi]\"}}";
|
||||
String result = JSONStrFormater.format(json);
|
||||
Assert.assertNotNull(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void formatTest3() {
|
||||
String json = "{\"id\":13,\"title\":\"《标题》\",\"subtitle\":\"副标题z'c'z'xv'c'xv\",\"user_id\":6,\"type\":0}";
|
||||
String result = JSONStrFormater.format(json);
|
||||
Assert.assertNotNull(result);
|
||||
}
|
||||
}
|
||||
130
hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java
Normal file
130
hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java
Normal file
@@ -0,0 +1,130 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.json.test.bean.Price;
|
||||
import cn.hutool.json.test.bean.UserA;
|
||||
import cn.hutool.json.test.bean.UserC;
|
||||
|
||||
public class JSONUtilTest {
|
||||
|
||||
@Test
|
||||
public void toJsonStrTest() {
|
||||
UserA a1 = new UserA();
|
||||
a1.setA("aaaa");
|
||||
a1.setDate(DateUtil.date());
|
||||
a1.setName("AAAAName");
|
||||
UserA a2 = new UserA();
|
||||
a2.setA("aaaa222");
|
||||
a2.setDate(DateUtil.date());
|
||||
a2.setName("AAAA222Name");
|
||||
|
||||
ArrayList<UserA> list = CollectionUtil.newArrayList(a1, a2);
|
||||
HashMap<String, Object> map = CollectionUtil.newHashMap();
|
||||
map.put("total", 13);
|
||||
map.put("rows", list);
|
||||
|
||||
String str = JSONUtil.toJsonPrettyStr(map);
|
||||
Assert.assertNotNull(str);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJsonStrTest2() {
|
||||
Map<String, Object> model = new HashMap<String, Object>();
|
||||
model.put("mobile", "17610836523");
|
||||
model.put("type", 1);
|
||||
|
||||
Map<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("model", model);
|
||||
data.put("model2", model);
|
||||
|
||||
JSONObject jsonObject = JSONUtil.parseObj(data);
|
||||
|
||||
Assert.assertTrue(jsonObject.containsKey("model"));
|
||||
Assert.assertEquals(1, jsonObject.getJSONObject("model").getInt("type").intValue());
|
||||
Assert.assertEquals("17610836523", jsonObject.getJSONObject("model").getStr("mobile"));
|
||||
// Assert.assertEquals("{\"model\":{\"type\":1,\"mobile\":\"17610836523\"}}", jsonObject.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJsonStrTest3() {
|
||||
// 验证某个字段为JSON字符串时转义是否规范
|
||||
JSONObject object = new JSONObject(true);
|
||||
object.put("name", "123123");
|
||||
object.put("value", "\\");
|
||||
object.put("value2", "</");
|
||||
|
||||
HashMap<String, String> map = MapUtil.newHashMap();
|
||||
map.put("user", object.toString());
|
||||
|
||||
JSONObject json = JSONUtil.parseObj(map);
|
||||
Assert.assertEquals("{\"name\":\"123123\",\"value\":\"\\\\\",\"value2\":\"<\\/\"}", json.get("user"));
|
||||
Assert.assertEquals("{\"user\":\"{\\\"name\\\":\\\"123123\\\",\\\"value\\\":\\\"\\\\\\\\\\\",\\\"value2\\\":\\\"<\\\\/\\\"}\"}", json.toString());
|
||||
|
||||
JSONObject json2 = JSONUtil.parseObj(json.toString());
|
||||
Assert.assertEquals("{\"name\":\"123123\",\"value\":\"\\\\\",\"value2\":\"<\\/\"}", json2.get("user"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 泛型多层嵌套测试
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
String json = "{\"ADT\":[[{\"BookingCode\":[\"N\",\"N\"]}]]}";
|
||||
|
||||
Price price = JSONUtil.toBean(json, Price.class);
|
||||
Assert.assertEquals("N", price.getADT().get(0).get(0).getBookingCode().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toBeanTest2() {
|
||||
// 测试JSONObject转为Bean中字符串字段的情况
|
||||
String json = "{\"id\":123,\"name\":\"张三\",\"prop\":{\"gender\":\"男\", \"age\":18}}";
|
||||
UserC user = JSONUtil.toBean(json, UserC.class);
|
||||
Assert.assertNotNull(user.getProp());
|
||||
String prop = user.getProp();
|
||||
JSONObject propJson = JSONUtil.parseObj(prop);
|
||||
Assert.assertEquals("男", propJson.getStr("gender"));
|
||||
Assert.assertEquals(18, propJson.getInt("age").intValue());
|
||||
// Assert.assertEquals("{\"age\":18,\"gender\":\"男\"}", user.getProp());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putByPathTest() {
|
||||
JSONObject json = new JSONObject();
|
||||
json.putByPath("aa.bb", "BB");
|
||||
Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStrTest() {
|
||||
String html = "{\"name\":\"Something must have been changed since you leave\"}";
|
||||
JSONObject jsonObject = JSONUtil.parseObj(html);
|
||||
Assert.assertEquals("Something must have been changed since you leave", jsonObject.getStr("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStrTest2() {
|
||||
String html = "{\"name\":\"Something\\u00a0must have been changed since you leave\"}";
|
||||
JSONObject jsonObject = JSONUtil.parseObj(html);
|
||||
Assert.assertEquals("Something\\u00a0must\\u00a0have\\u00a0been\\u00a0changed\\u00a0since\\u00a0you\\u00a0leave", jsonObject.getStrEscaped("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseFromXmlTest() {
|
||||
String s = "<sfzh>640102197312070614</sfzh><sfz>640102197312070614X</sfz><name>aa</name><gender>1</gender>";
|
||||
JSONObject json = JSONUtil.parseFromXml(s);
|
||||
Assert.assertEquals(640102197312070614L, json.get("sfzh"));
|
||||
Assert.assertEquals("640102197312070614X", json.get("sfz"));
|
||||
Assert.assertEquals("aa", json.get("name"));
|
||||
Assert.assertEquals(1, json.get("gender"));
|
||||
}
|
||||
}
|
||||
78
hutool-json/src/test/java/cn/hutool/json/ParseBeanTest.java
Normal file
78
hutool-json/src/test/java/cn/hutool/json/ParseBeanTest.java
Normal file
@@ -0,0 +1,78 @@
|
||||
package cn.hutool.json;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
|
||||
/**
|
||||
* 测试Bean中嵌套List等对象时是否完整转换<br>
|
||||
* 同时测试私有class是否可以有效实例化
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class ParseBeanTest {
|
||||
|
||||
@Test
|
||||
public void parseBeanTest() {
|
||||
|
||||
C c1 = new C();
|
||||
c1.setTest("test1");
|
||||
C c2 = new C();
|
||||
c2.setTest("test2");
|
||||
|
||||
B b1 = new B();
|
||||
b1.setCs(CollUtil.newArrayList(c1, c2));
|
||||
B b2 = new B();
|
||||
b2.setCs(CollUtil.newArrayList(c1, c2));
|
||||
|
||||
A a = new A();
|
||||
a.setBs(CollUtil.newArrayList(b1, b2));
|
||||
|
||||
JSONObject json = JSONUtil.parseObj(a);
|
||||
A a1 = JSONUtil.toBean(json, A.class);
|
||||
Assert.assertEquals(json.toString(), JSONUtil.toJsonStr(a1));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class A {
|
||||
|
||||
private List<B> bs;
|
||||
|
||||
public List<B> getBs() {
|
||||
return bs;
|
||||
}
|
||||
|
||||
public void setBs(List<B> bs) {
|
||||
this.bs = bs;
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
|
||||
private List<C> cs;
|
||||
|
||||
public List<C> getCs() {
|
||||
return cs;
|
||||
}
|
||||
|
||||
public void setCs(List<C> cs) {
|
||||
this.cs = cs;
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
private String test;
|
||||
|
||||
public String getTest() {
|
||||
return test;
|
||||
}
|
||||
|
||||
public void setTest(String test) {
|
||||
this.test = test;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package cn.hutool.json.issueIVMD5;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BaseResult<E> {
|
||||
|
||||
public BaseResult() {
|
||||
}
|
||||
|
||||
private int result;
|
||||
private List<E> data;
|
||||
private E data2;
|
||||
private String nextDataUri;
|
||||
private String message;
|
||||
private int dataCount;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package cn.hutool.json.issueIVMD5;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
|
||||
public class IssueIVMD5Test {
|
||||
|
||||
/**
|
||||
* 测试泛型对象中有泛型字段的转换成功与否
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("issueIVMD5.json");
|
||||
|
||||
TypeReference<BaseResult<StudentInfo>> typeReference = new TypeReference<BaseResult<StudentInfo>>() {};
|
||||
BaseResult<StudentInfo> bean = JSONUtil.toBean(jsonStr, typeReference.getType(), false);
|
||||
|
||||
StudentInfo data2 = bean.getData2();
|
||||
Assert.assertEquals("B4DDF491FDF34074AE7A819E1341CB6C", data2.getAccountId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试泛型对象中有包含泛型字段的类型的转换成功与否,比如List<T> list
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest2() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("issueIVMD5.json");
|
||||
|
||||
TypeReference<BaseResult<StudentInfo>> typeReference = new TypeReference<BaseResult<StudentInfo>>() {};
|
||||
BaseResult<StudentInfo> bean = JSONUtil.toBean(jsonStr, typeReference.getType(), false);
|
||||
|
||||
List<StudentInfo> data = bean.getData();
|
||||
StudentInfo studentInfo = data.get(0);
|
||||
Assert.assertEquals("B4DDF491FDF34074AE7A819E1341CB6C", studentInfo.getAccountId());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package cn.hutool.json.issueIVMD5;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StudentInfo {
|
||||
private String birthday;
|
||||
private String linkPhone;
|
||||
private String nation;
|
||||
private String studentCode;
|
||||
private String unitiveCode;
|
||||
private String sex;
|
||||
private String linkAddress;
|
||||
private String identityCard;
|
||||
private String accountId;
|
||||
private String classId;
|
||||
private String password;
|
||||
private String modifyTime;
|
||||
private String isDeleted;
|
||||
private String postalcode;
|
||||
private String background;
|
||||
private String schoolId;
|
||||
private String studentName;
|
||||
private String sequenceIntId;
|
||||
private String nativePlace;
|
||||
private String id;
|
||||
private String username;
|
||||
}
|
||||
16
hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java
Normal file
16
hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ADT {
|
||||
|
||||
private List<String> BookingCode;
|
||||
|
||||
public void setBookingCode(List<String> BookingCode) {
|
||||
this.BookingCode = BookingCode;
|
||||
}
|
||||
|
||||
public List<String> getBookingCode() {
|
||||
return BookingCode;
|
||||
}
|
||||
}
|
||||
14
hutool-json/src/test/java/cn/hutool/json/test/bean/Data.java
Normal file
14
hutool-json/src/test/java/cn/hutool/json/test/bean/Data.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class Data {
|
||||
|
||||
private Price Price;
|
||||
|
||||
public void setPrice(Price Price) {
|
||||
this.Price = Price;
|
||||
}
|
||||
|
||||
public Price getPrice() {
|
||||
return Price;
|
||||
}
|
||||
}
|
||||
67
hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java
Normal file
67
hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Exam {
|
||||
private String id;
|
||||
private String examNumber;
|
||||
private String isAnswer;
|
||||
private Seq[] answerArray;
|
||||
private String isRight;
|
||||
private String isSubject;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getExamNumber() {
|
||||
return examNumber;
|
||||
}
|
||||
|
||||
public void setExamNumber(String examNumber) {
|
||||
this.examNumber = examNumber;
|
||||
}
|
||||
|
||||
public String getIsAnswer() {
|
||||
return isAnswer;
|
||||
}
|
||||
|
||||
public void setIsAnswer(String isAnswer) {
|
||||
this.isAnswer = isAnswer;
|
||||
}
|
||||
|
||||
public Seq[] getAnswerArray() {
|
||||
return answerArray;
|
||||
}
|
||||
|
||||
public void setAnswerArray(Seq[] answerArray) {
|
||||
this.answerArray = answerArray;
|
||||
}
|
||||
|
||||
public String getIsRight() {
|
||||
return isRight;
|
||||
}
|
||||
|
||||
public void setIsRight(String isRight) {
|
||||
this.isRight = isRight;
|
||||
}
|
||||
|
||||
public String getIsSubject() {
|
||||
return isSubject;
|
||||
}
|
||||
|
||||
public void setIsSubject(String isSubject) {
|
||||
this.isSubject = isSubject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Exam [id=" + id + ", examNumber=" + examNumber + ", isAnswer=" + isAnswer + ", answerArray=" + Arrays.toString(answerArray) + ", isRight=" + isRight + ", isSubject=" + isSubject + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 质量过关
|
||||
*
|
||||
*/
|
||||
public class ExamInfoDict implements Serializable {
|
||||
private static final long serialVersionUID = 3640936499125004525L;
|
||||
|
||||
// 主键
|
||||
private Integer id; // 可当作题号
|
||||
// 试题类型 客观题 0主观题 1
|
||||
private Integer examType;
|
||||
// 试题是否作答
|
||||
private Integer answerIs;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getExamType() {
|
||||
return examType;
|
||||
}
|
||||
public void setExamType(Integer examType) {
|
||||
this.examType = examType;
|
||||
}
|
||||
|
||||
public Integer getAnswerIs() {
|
||||
return answerIs;
|
||||
}
|
||||
public void setAnswerIs(Integer answerIs) {
|
||||
this.answerIs = answerIs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
ExamInfoDict that = (ExamInfoDict) o;
|
||||
return Objects.equals(id, that.id) && Objects.equals(examType, that.examType) && Objects.equals(answerIs, that.answerIs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, examType, answerIs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ExamInfoDict{" + "id=" + id + ", examType=" + examType + ", answerIs=" + answerIs + '}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
|
||||
public class JSONBean {
|
||||
|
||||
private int code;
|
||||
private JSONObject data;
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
public JSONObject getData() {
|
||||
return data;
|
||||
}
|
||||
public void setData(JSONObject data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class JsonNode implements Serializable {
|
||||
private static final long serialVersionUID = -2280206942803550272L;
|
||||
|
||||
private Long id;
|
||||
private Integer parentId;
|
||||
private String name;
|
||||
|
||||
public JsonNode() {
|
||||
}
|
||||
|
||||
public JsonNode(Long id, Integer parentId, String name) {
|
||||
this.id = id;
|
||||
this.parentId = parentId;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getParentId() {
|
||||
return parentId;
|
||||
}
|
||||
|
||||
public void setParentId(Integer parentId) {
|
||||
this.parentId = parentId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JsonNode{" + "id=" + id + ", parentId=" + parentId + ", name='" + name + '\'' + '}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JsonRootBean {
|
||||
|
||||
private int statusCode;
|
||||
private String message;
|
||||
private int skip;
|
||||
private int limit;
|
||||
private int total;
|
||||
private List<Data> data;
|
||||
|
||||
public void setStatusCode(int statusCode) {
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setSkip(int skip) {
|
||||
this.skip = skip;
|
||||
}
|
||||
|
||||
public int getSkip() {
|
||||
return skip;
|
||||
}
|
||||
|
||||
public void setLimit(int limit) {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
public int getLimit() {
|
||||
return limit;
|
||||
}
|
||||
|
||||
public void setTotal(int total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setData(List<Data> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public List<Data> getData() {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class KeyBean{
|
||||
private String akey;
|
||||
private String bkey;
|
||||
|
||||
public String getAkey() {
|
||||
return akey;
|
||||
}
|
||||
public void setAkey(String akey) {
|
||||
this.akey = akey;
|
||||
}
|
||||
public String getBkey() {
|
||||
return bkey;
|
||||
}
|
||||
public void setBkey(String bkey) {
|
||||
this.bkey = bkey;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KeyBean [akey=" + akey + ", bkey=" + bkey + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,965 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wangyan E-mail:wangyan@pospt.cn
|
||||
* @version 创建时间:2017年9月13日 下午5:16:32
|
||||
* 类说明
|
||||
*/
|
||||
public class PerfectEvaluationProductResVo extends ProductResBase{
|
||||
|
||||
public static final Map<String,String> KEY_TO_KEY = new HashMap<String,String>(){
|
||||
private static final long serialVersionUID = 1L;
|
||||
{
|
||||
put("HA001","CDCA005");
|
||||
put("HA002","CDCA002");
|
||||
put("HA003","CDCA004");
|
||||
put("HA004","CSSP002");
|
||||
put("HB001","CSWC001");
|
||||
put("HB002","CSRL001");
|
||||
put("HB003","CSRL003");
|
||||
put("HC005","CDTB016");
|
||||
put("HC006","CDTB020");
|
||||
put("HC007","CDTB021");
|
||||
put("HC008","CDTB022");
|
||||
put("HC009","CDTB023");
|
||||
put("HC010","CDTB024");
|
||||
put("HC011","CDTB001");
|
||||
put("HC012","CDTB005");
|
||||
put("HC013","CDTB006");
|
||||
put("HC014","CDTB007");
|
||||
put("HC015","CDTB008");
|
||||
put("HC016","CDTB009");
|
||||
put("HC001","CDTB018");
|
||||
put("HC002","CDTB003");
|
||||
put("HC003","CDTB063");
|
||||
put("HC004","CDTB060");
|
||||
put("HD001","CDMC005");
|
||||
put("HD007","CDMC082");
|
||||
put("HD010","CDMC164");
|
||||
put("HD016","CSSP003");
|
||||
put("HD017","CSSS003");
|
||||
put("HE001","CDTT028");
|
||||
put("HE002","CDTT029");
|
||||
put("HE003","CDTT030");
|
||||
put("HE004","CDTT031");
|
||||
put("HE005","CDTT032");
|
||||
put("HE006","CDTT033");
|
||||
put("HE007","CDTT015");
|
||||
put("HE008","CDTT016");
|
||||
put("HE009","CDTT017");
|
||||
put("HE010","CDTT018");
|
||||
put("HE011","CDTT019");
|
||||
put("HE012","CDTT020");
|
||||
put("HE013","CDTT055");
|
||||
put("HE014","CDTT056");
|
||||
put("HE015","CDTT057");
|
||||
put("HE016","CDTT058");
|
||||
put("HE017","CDTT059");
|
||||
put("HE018","CDTT060");
|
||||
put("HE019","CDTT043");
|
||||
put("HE020","CDTT044");
|
||||
put("HE021","CDTT045");
|
||||
put("HE022","CDTT046");
|
||||
put("HE023","CDTT047");
|
||||
put("HE024","CDTT048");
|
||||
put("HE025","CDTT080");
|
||||
put("HE026","CDTT081");
|
||||
put("HE027","CDTT082");
|
||||
put("HE028","CDTT083");
|
||||
put("HE029","CDTT084");
|
||||
put("HE030","CDTT085");
|
||||
put("HE031","CDTT067");
|
||||
put("HE032","CDTT068");
|
||||
put("HE033","CDTT069");
|
||||
put("HE034","CDTT070");
|
||||
put("HE035","CDTT071");
|
||||
put("HE036","CDTT072");
|
||||
put("HF001","CDTB272");
|
||||
put("HF002","CDTB273");
|
||||
put("HF003","CDTB277");
|
||||
put("HF004","CDTB278");
|
||||
put("HF005","CDTB282");
|
||||
put("HF006","CDTB283");
|
||||
put("HF007","CDTC058");
|
||||
put("HF008","CDTC059");
|
||||
put("HF009","CDTC060");
|
||||
put("HF010","CDTC014");
|
||||
put("HG001","CDMC294");
|
||||
put("HG002","CDMC293");
|
||||
put("HG003","CDMC301");
|
||||
put("HG004","CDMC300");
|
||||
put("HG005","CDMC308");
|
||||
put("HG006","CDMC307");
|
||||
put("HG007","CDMC315");
|
||||
put("HG008","CDMC314");
|
||||
put("HG009","CDMC322");
|
||||
put("HG010","CDMC321");
|
||||
put("HG011","CDMC287");
|
||||
put("HH001","CDTT001");
|
||||
put("HH002","CDTT002");
|
||||
put("HH003","CDTT003");
|
||||
put("HH004","CDTT004");
|
||||
put("HH005","CDTT005");
|
||||
put("HH006","CDTT006");
|
||||
put("HH007","CDTT007");
|
||||
put("HH008","CDTT008");
|
||||
put("HH009","CDTT009");
|
||||
put("HH010","CDTT010");
|
||||
put("HH011","CDTT011");
|
||||
put("HH012","CDTT012");
|
||||
put("HH013","CDTT013");
|
||||
put("HH014","CDTT014");
|
||||
}
|
||||
};
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String XT_NO;
|
||||
private String CARD_HOLDER;
|
||||
private String CARD_NO;
|
||||
private String HA001;
|
||||
private String HA002;
|
||||
private String HA003;
|
||||
private String HA004;
|
||||
private String HB001;
|
||||
private String HB002;
|
||||
private String HB003;
|
||||
private String HC005;
|
||||
private String HC006;
|
||||
private String HC007;
|
||||
private String HC008;
|
||||
private String HC009;
|
||||
private String HC010;
|
||||
private String HC011;
|
||||
private String HC012;
|
||||
private String HC013;
|
||||
private String HC014;
|
||||
private String HC015;
|
||||
private String HC016;
|
||||
private String HC001;
|
||||
private String HC002;
|
||||
private String HC003;
|
||||
private String HC004;
|
||||
private String HD001;
|
||||
private String HD002;
|
||||
private String HD004;
|
||||
private String HD005;
|
||||
private String HD007;
|
||||
private String HD008;
|
||||
private String HD010;
|
||||
private String HD011;
|
||||
private String HD013;
|
||||
private String HD014;
|
||||
private String HD016;
|
||||
private String HD017;
|
||||
private String HE001;
|
||||
private String HE002;
|
||||
private String HE003;
|
||||
private String HE004;
|
||||
private String HE005;
|
||||
private String HE006;
|
||||
private String HE007;
|
||||
private String HE008;
|
||||
private String HE009;
|
||||
private String HE010;
|
||||
private String HE011;
|
||||
private String HE012;
|
||||
private String HE013;
|
||||
private String HE014;
|
||||
private String HE015;
|
||||
private String HE016;
|
||||
private String HE017;
|
||||
private String HE018;
|
||||
private String HE019;
|
||||
private String HE020;
|
||||
private String HE021;
|
||||
private String HE022;
|
||||
private String HE023;
|
||||
private String HE024;
|
||||
private String HE025;
|
||||
private String HE026;
|
||||
private String HE027;
|
||||
private String HE028;
|
||||
private String HE029;
|
||||
private String HE030;
|
||||
private String HE031;
|
||||
private String HE032;
|
||||
private String HE033;
|
||||
private String HE034;
|
||||
private String HE035;
|
||||
private String HE036;
|
||||
private String HF001;
|
||||
private String HF002;
|
||||
private String HF003;
|
||||
private String HF004;
|
||||
private String HF005;
|
||||
private String HF006;
|
||||
private String HF007;
|
||||
private String HF008;
|
||||
private String HF009;
|
||||
private String HF010;
|
||||
private String HG001;
|
||||
private String HG002;
|
||||
private String HG003;
|
||||
private String HG004;
|
||||
private String HG005;
|
||||
private String HG006;
|
||||
private String HG007;
|
||||
private String HG008;
|
||||
private String HG009;
|
||||
private String HG010;
|
||||
private String HG011;
|
||||
private String HG012;
|
||||
private String HG013;
|
||||
private String HG014;
|
||||
private String HG015;
|
||||
private String HG016;
|
||||
private String HH001;
|
||||
private String HH002;
|
||||
private String HH003;
|
||||
private String HH004;
|
||||
private String HH005;
|
||||
private String HH006;
|
||||
private String HH007;
|
||||
private String HH008;
|
||||
private String HH009;
|
||||
private String HH010;
|
||||
private String HH011;
|
||||
private String HH012;
|
||||
private String HH013;
|
||||
private String HH014;
|
||||
private String XT_MONTH01;
|
||||
private String XT_MONTH02;
|
||||
private String XT_MONTH03;
|
||||
private String XT_MONTH04;
|
||||
private String XT_MONTH05;
|
||||
private String XT_MONTH06;
|
||||
|
||||
|
||||
public String getHA001() {
|
||||
return HA001;
|
||||
}
|
||||
public String getHA002() {
|
||||
return HA002;
|
||||
}
|
||||
public String getHA003() {
|
||||
return HA003;
|
||||
}
|
||||
public String getHA004() {
|
||||
return HA004;
|
||||
}
|
||||
public String getHB001() {
|
||||
return HB001;
|
||||
}
|
||||
public String getHB002() {
|
||||
return HB002;
|
||||
}
|
||||
public String getHB003() {
|
||||
return HB003;
|
||||
}
|
||||
public String getHC005() {
|
||||
return HC005;
|
||||
}
|
||||
public String getHC006() {
|
||||
return HC006;
|
||||
}
|
||||
public String getHC007() {
|
||||
return HC007;
|
||||
}
|
||||
public String getHC008() {
|
||||
return HC008;
|
||||
}
|
||||
public String getHC009() {
|
||||
return HC009;
|
||||
}
|
||||
public String getHC010() {
|
||||
return HC010;
|
||||
}
|
||||
public String getHC011() {
|
||||
return HC011;
|
||||
}
|
||||
public String getHC012() {
|
||||
return HC012;
|
||||
}
|
||||
public String getHC013() {
|
||||
return HC013;
|
||||
}
|
||||
public String getHC014() {
|
||||
return HC014;
|
||||
}
|
||||
public String getHC015() {
|
||||
return HC015;
|
||||
}
|
||||
public String getHC016() {
|
||||
return HC016;
|
||||
}
|
||||
public String getHC001() {
|
||||
return HC001;
|
||||
}
|
||||
public String getHC002() {
|
||||
return HC002;
|
||||
}
|
||||
public String getHC003() {
|
||||
return HC003;
|
||||
}
|
||||
public String getHC004() {
|
||||
return HC004;
|
||||
}
|
||||
public String getHD001() {
|
||||
return HD001;
|
||||
}
|
||||
public String getHD002() {
|
||||
return HD002;
|
||||
}
|
||||
|
||||
public String getHD004() {
|
||||
return HD004;
|
||||
}
|
||||
public String getHD005() {
|
||||
return HD005;
|
||||
}
|
||||
|
||||
public String getHD007() {
|
||||
return HD007;
|
||||
}
|
||||
public String getHD008() {
|
||||
return HD008;
|
||||
}
|
||||
|
||||
public String getHD010() {
|
||||
return HD010;
|
||||
}
|
||||
public String getHD011() {
|
||||
return HD011;
|
||||
}
|
||||
public String getHD013() {
|
||||
return HD013;
|
||||
}
|
||||
public String getHD014() {
|
||||
return HD014;
|
||||
}
|
||||
public String getHD016() {
|
||||
return HD016;
|
||||
}
|
||||
public String getHD017() {
|
||||
return HD017;
|
||||
}
|
||||
public String getHE001() {
|
||||
return HE001;
|
||||
}
|
||||
public String getHE002() {
|
||||
return HE002;
|
||||
}
|
||||
public String getHE003() {
|
||||
return HE003;
|
||||
}
|
||||
public String getHE004() {
|
||||
return HE004;
|
||||
}
|
||||
public String getHE005() {
|
||||
return HE005;
|
||||
}
|
||||
public String getHE006() {
|
||||
return HE006;
|
||||
}
|
||||
public String getHE007() {
|
||||
return HE007;
|
||||
}
|
||||
public String getHE008() {
|
||||
return HE008;
|
||||
}
|
||||
public String getHE009() {
|
||||
return HE009;
|
||||
}
|
||||
public String getHE010() {
|
||||
return HE010;
|
||||
}
|
||||
public String getHE011() {
|
||||
return HE011;
|
||||
}
|
||||
public String getHE012() {
|
||||
return HE012;
|
||||
}
|
||||
public String getHE013() {
|
||||
return HE013;
|
||||
}
|
||||
public String getHE014() {
|
||||
return HE014;
|
||||
}
|
||||
public String getHE015() {
|
||||
return HE015;
|
||||
}
|
||||
public String getHE016() {
|
||||
return HE016;
|
||||
}
|
||||
public String getHE017() {
|
||||
return HE017;
|
||||
}
|
||||
public String getHE018() {
|
||||
return HE018;
|
||||
}
|
||||
public String getHE019() {
|
||||
return HE019;
|
||||
}
|
||||
public String getHE020() {
|
||||
return HE020;
|
||||
}
|
||||
public String getHE021() {
|
||||
return HE021;
|
||||
}
|
||||
public String getHE022() {
|
||||
return HE022;
|
||||
}
|
||||
public String getHE023() {
|
||||
return HE023;
|
||||
}
|
||||
public String getHE024() {
|
||||
return HE024;
|
||||
}
|
||||
public String getHE025() {
|
||||
return HE025;
|
||||
}
|
||||
public String getHE026() {
|
||||
return HE026;
|
||||
}
|
||||
public String getHE027() {
|
||||
return HE027;
|
||||
}
|
||||
public String getHE028() {
|
||||
return HE028;
|
||||
}
|
||||
public String getHE029() {
|
||||
return HE029;
|
||||
}
|
||||
public String getHE030() {
|
||||
return HE030;
|
||||
}
|
||||
public String getHE031() {
|
||||
return HE031;
|
||||
}
|
||||
public String getHE032() {
|
||||
return HE032;
|
||||
}
|
||||
public String getHE033() {
|
||||
return HE033;
|
||||
}
|
||||
public String getHE034() {
|
||||
return HE034;
|
||||
}
|
||||
public String getHE035() {
|
||||
return HE035;
|
||||
}
|
||||
public String getHE036() {
|
||||
return HE036;
|
||||
}
|
||||
public String getHF001() {
|
||||
return HF001;
|
||||
}
|
||||
public String getHF002() {
|
||||
return HF002;
|
||||
}
|
||||
public String getHF003() {
|
||||
return HF003;
|
||||
}
|
||||
public String getHF004() {
|
||||
return HF004;
|
||||
}
|
||||
public String getHF005() {
|
||||
return HF005;
|
||||
}
|
||||
public String getHF006() {
|
||||
return HF006;
|
||||
}
|
||||
public String getHF007() {
|
||||
return HF007;
|
||||
}
|
||||
public String getHF008() {
|
||||
return HF008;
|
||||
}
|
||||
public String getHF009() {
|
||||
return HF009;
|
||||
}
|
||||
public String getHF010() {
|
||||
return HF010;
|
||||
}
|
||||
public String getHG001() {
|
||||
return HG001;
|
||||
}
|
||||
public String getHG002() {
|
||||
return HG002;
|
||||
}
|
||||
public String getHG003() {
|
||||
return HG003;
|
||||
}
|
||||
public String getHG004() {
|
||||
return HG004;
|
||||
}
|
||||
public String getHG005() {
|
||||
return HG005;
|
||||
}
|
||||
public String getHG006() {
|
||||
return HG006;
|
||||
}
|
||||
public String getHG007() {
|
||||
return HG007;
|
||||
}
|
||||
public String getHG008() {
|
||||
return HG008;
|
||||
}
|
||||
public String getHG009() {
|
||||
return HG009;
|
||||
}
|
||||
public String getHG010() {
|
||||
return HG010;
|
||||
}
|
||||
public String getHG011() {
|
||||
return HG011;
|
||||
}
|
||||
public String getHG012() {
|
||||
return HG012;
|
||||
}
|
||||
public String getHG013() {
|
||||
return HG013;
|
||||
}
|
||||
public String getHG014() {
|
||||
return HG014;
|
||||
}
|
||||
public String getHG015() {
|
||||
return HG015;
|
||||
}
|
||||
public String getHG016() {
|
||||
return HG016;
|
||||
}
|
||||
public String getHH001() {
|
||||
return HH001;
|
||||
}
|
||||
public String getHH002() {
|
||||
return HH002;
|
||||
}
|
||||
public String getHH003() {
|
||||
return HH003;
|
||||
}
|
||||
public String getHH004() {
|
||||
return HH004;
|
||||
}
|
||||
public String getHH005() {
|
||||
return HH005;
|
||||
}
|
||||
public String getHH006() {
|
||||
return HH006;
|
||||
}
|
||||
public String getHH007() {
|
||||
return HH007;
|
||||
}
|
||||
public String getHH008() {
|
||||
return HH008;
|
||||
}
|
||||
public String getHH009() {
|
||||
return HH009;
|
||||
}
|
||||
public String getHH010() {
|
||||
return HH010;
|
||||
}
|
||||
public String getHH011() {
|
||||
return HH011;
|
||||
}
|
||||
public String getHH012() {
|
||||
return HH012;
|
||||
}
|
||||
public String getHH013() {
|
||||
return HH013;
|
||||
}
|
||||
public String getHH014() {
|
||||
return HH014;
|
||||
}
|
||||
public void setHA001(String hA001) {
|
||||
HA001 = hA001;
|
||||
}
|
||||
public void setHA002(String hA002) {
|
||||
HA002 = hA002;
|
||||
}
|
||||
public void setHA003(String hA003) {
|
||||
HA003 = hA003;
|
||||
}
|
||||
public void setHA004(String hA004) {
|
||||
HA004 = hA004;
|
||||
}
|
||||
public void setHB001(String hB001) {
|
||||
HB001 = hB001;
|
||||
}
|
||||
public void setHB002(String hB002) {
|
||||
HB002 = hB002;
|
||||
}
|
||||
public void setHB003(String hB003) {
|
||||
HB003 = hB003;
|
||||
}
|
||||
public void setHC005(String hC005) {
|
||||
HC005 = hC005;
|
||||
}
|
||||
public void setHC006(String hC006) {
|
||||
HC006 = hC006;
|
||||
}
|
||||
public void setHC007(String hC007) {
|
||||
HC007 = hC007;
|
||||
}
|
||||
public void setHC008(String hC008) {
|
||||
HC008 = hC008;
|
||||
}
|
||||
public void setHC009(String hC009) {
|
||||
HC009 = hC009;
|
||||
}
|
||||
public void setHC010(String hC010) {
|
||||
HC010 = hC010;
|
||||
}
|
||||
public void setHC011(String hC011) {
|
||||
HC011 = hC011;
|
||||
}
|
||||
public void setHC012(String hC012) {
|
||||
HC012 = hC012;
|
||||
}
|
||||
public void setHC013(String hC013) {
|
||||
HC013 = hC013;
|
||||
}
|
||||
public void setHC014(String hC014) {
|
||||
HC014 = hC014;
|
||||
}
|
||||
public void setHC015(String hC015) {
|
||||
HC015 = hC015;
|
||||
}
|
||||
public void setHC016(String hC016) {
|
||||
HC016 = hC016;
|
||||
}
|
||||
public void setHC001(String hC001) {
|
||||
HC001 = hC001;
|
||||
}
|
||||
public void setHC002(String hC002) {
|
||||
HC002 = hC002;
|
||||
}
|
||||
public void setHC003(String hC003) {
|
||||
HC003 = hC003;
|
||||
}
|
||||
public void setHC004(String hC004) {
|
||||
HC004 = hC004;
|
||||
}
|
||||
public void setHD001(String hD001) {
|
||||
HD001 = hD001;
|
||||
}
|
||||
public void setHD002(String hD002) {
|
||||
HD002 = hD002;
|
||||
}
|
||||
public void setHD004(String hD004) {
|
||||
HD004 = hD004;
|
||||
}
|
||||
public void setHD005(String hD005) {
|
||||
HD005 = hD005;
|
||||
}
|
||||
public void setHD007(String hD007) {
|
||||
HD007 = hD007;
|
||||
}
|
||||
public void setHD008(String hD008) {
|
||||
HD008 = hD008;
|
||||
}
|
||||
public void setHD010(String hD010) {
|
||||
HD010 = hD010;
|
||||
}
|
||||
public void setHD011(String hD011) {
|
||||
HD011 = hD011;
|
||||
}
|
||||
public void setHD013(String hD013) {
|
||||
HD013 = hD013;
|
||||
}
|
||||
public void setHD014(String hD014) {
|
||||
HD014 = hD014;
|
||||
}
|
||||
public void setHD016(String hD016) {
|
||||
HD016 = hD016;
|
||||
}
|
||||
public void setHD017(String hD017) {
|
||||
HD017 = hD017;
|
||||
}
|
||||
public void setHE001(String hE001) {
|
||||
HE001 = hE001;
|
||||
}
|
||||
public void setHE002(String hE002) {
|
||||
HE002 = hE002;
|
||||
}
|
||||
public void setHE003(String hE003) {
|
||||
HE003 = hE003;
|
||||
}
|
||||
public void setHE004(String hE004) {
|
||||
HE004 = hE004;
|
||||
}
|
||||
public void setHE005(String hE005) {
|
||||
HE005 = hE005;
|
||||
}
|
||||
public void setHE006(String hE006) {
|
||||
HE006 = hE006;
|
||||
}
|
||||
public void setHE007(String hE007) {
|
||||
HE007 = hE007;
|
||||
}
|
||||
public void setHE008(String hE008) {
|
||||
HE008 = hE008;
|
||||
}
|
||||
public void setHE009(String hE009) {
|
||||
HE009 = hE009;
|
||||
}
|
||||
public void setHE010(String hE010) {
|
||||
HE010 = hE010;
|
||||
}
|
||||
public void setHE011(String hE011) {
|
||||
HE011 = hE011;
|
||||
}
|
||||
public void setHE012(String hE012) {
|
||||
HE012 = hE012;
|
||||
}
|
||||
public void setHE013(String hE013) {
|
||||
HE013 = hE013;
|
||||
}
|
||||
public void setHE014(String hE014) {
|
||||
HE014 = hE014;
|
||||
}
|
||||
public void setHE015(String hE015) {
|
||||
HE015 = hE015;
|
||||
}
|
||||
public void setHE016(String hE016) {
|
||||
HE016 = hE016;
|
||||
}
|
||||
public void setHE017(String hE017) {
|
||||
HE017 = hE017;
|
||||
}
|
||||
public void setHE018(String hE018) {
|
||||
HE018 = hE018;
|
||||
}
|
||||
public void setHE019(String hE019) {
|
||||
HE019 = hE019;
|
||||
}
|
||||
public void setHE020(String hE020) {
|
||||
HE020 = hE020;
|
||||
}
|
||||
public void setHE021(String hE021) {
|
||||
HE021 = hE021;
|
||||
}
|
||||
public void setHE022(String hE022) {
|
||||
HE022 = hE022;
|
||||
}
|
||||
public void setHE023(String hE023) {
|
||||
HE023 = hE023;
|
||||
}
|
||||
public void setHE024(String hE024) {
|
||||
HE024 = hE024;
|
||||
}
|
||||
public void setHE025(String hE025) {
|
||||
HE025 = hE025;
|
||||
}
|
||||
public void setHE026(String hE026) {
|
||||
HE026 = hE026;
|
||||
}
|
||||
public void setHE027(String hE027) {
|
||||
HE027 = hE027;
|
||||
}
|
||||
public void setHE028(String hE028) {
|
||||
HE028 = hE028;
|
||||
}
|
||||
public void setHE029(String hE029) {
|
||||
HE029 = hE029;
|
||||
}
|
||||
public void setHE030(String hE030) {
|
||||
HE030 = hE030;
|
||||
}
|
||||
public void setHE031(String hE031) {
|
||||
HE031 = hE031;
|
||||
}
|
||||
public void setHE032(String hE032) {
|
||||
HE032 = hE032;
|
||||
}
|
||||
public void setHE033(String hE033) {
|
||||
HE033 = hE033;
|
||||
}
|
||||
public void setHE034(String hE034) {
|
||||
HE034 = hE034;
|
||||
}
|
||||
public void setHE035(String hE035) {
|
||||
HE035 = hE035;
|
||||
}
|
||||
public void setHE036(String hE036) {
|
||||
HE036 = hE036;
|
||||
}
|
||||
public void setHF001(String hF001) {
|
||||
HF001 = hF001;
|
||||
}
|
||||
public void setHF002(String hF002) {
|
||||
HF002 = hF002;
|
||||
}
|
||||
public void setHF003(String hF003) {
|
||||
HF003 = hF003;
|
||||
}
|
||||
public void setHF004(String hF004) {
|
||||
HF004 = hF004;
|
||||
}
|
||||
public void setHF005(String hF005) {
|
||||
HF005 = hF005;
|
||||
}
|
||||
public void setHF006(String hF006) {
|
||||
HF006 = hF006;
|
||||
}
|
||||
public void setHF007(String hF007) {
|
||||
HF007 = hF007;
|
||||
}
|
||||
public void setHF008(String hF008) {
|
||||
HF008 = hF008;
|
||||
}
|
||||
public void setHF009(String hF009) {
|
||||
HF009 = hF009;
|
||||
}
|
||||
public void setHF010(String hF010) {
|
||||
HF010 = hF010;
|
||||
}
|
||||
public void setHG001(String hG001) {
|
||||
HG001 = hG001;
|
||||
}
|
||||
public void setHG002(String hG002) {
|
||||
HG002 = hG002;
|
||||
}
|
||||
public void setHG003(String hG003) {
|
||||
HG003 = hG003;
|
||||
}
|
||||
public void setHG004(String hG004) {
|
||||
HG004 = hG004;
|
||||
}
|
||||
public void setHG005(String hG005) {
|
||||
HG005 = hG005;
|
||||
}
|
||||
public void setHG006(String hG006) {
|
||||
HG006 = hG006;
|
||||
}
|
||||
public void setHG007(String hG007) {
|
||||
HG007 = hG007;
|
||||
}
|
||||
public void setHG008(String hG008) {
|
||||
HG008 = hG008;
|
||||
}
|
||||
public void setHG009(String hG009) {
|
||||
HG009 = hG009;
|
||||
}
|
||||
public void setHG010(String hG010) {
|
||||
HG010 = hG010;
|
||||
}
|
||||
public void setHG011(String hG011) {
|
||||
HG011 = hG011;
|
||||
}
|
||||
public void setHG012(String hG012) {
|
||||
HG012 = hG012;
|
||||
}
|
||||
public void setHG013(String hG013) {
|
||||
HG013 = hG013;
|
||||
}
|
||||
public void setHG014(String hG014) {
|
||||
HG014 = hG014;
|
||||
}
|
||||
public void setHG015(String hG015) {
|
||||
HG015 = hG015;
|
||||
}
|
||||
public void setHG016(String hG016) {
|
||||
HG016 = hG016;
|
||||
}
|
||||
public void setHH001(String hH001) {
|
||||
HH001 = hH001;
|
||||
}
|
||||
public void setHH002(String hH002) {
|
||||
HH002 = hH002;
|
||||
}
|
||||
public void setHH003(String hH003) {
|
||||
HH003 = hH003;
|
||||
}
|
||||
public void setHH004(String hH004) {
|
||||
HH004 = hH004;
|
||||
}
|
||||
public void setHH005(String hH005) {
|
||||
HH005 = hH005;
|
||||
}
|
||||
public void setHH006(String hH006) {
|
||||
HH006 = hH006;
|
||||
}
|
||||
public void setHH007(String hH007) {
|
||||
HH007 = hH007;
|
||||
}
|
||||
public void setHH008(String hH008) {
|
||||
HH008 = hH008;
|
||||
}
|
||||
public void setHH009(String hH009) {
|
||||
HH009 = hH009;
|
||||
}
|
||||
public void setHH010(String hH010) {
|
||||
HH010 = hH010;
|
||||
}
|
||||
public void setHH011(String hH011) {
|
||||
HH011 = hH011;
|
||||
}
|
||||
public void setHH012(String hH012) {
|
||||
HH012 = hH012;
|
||||
}
|
||||
public void setHH013(String hH013) {
|
||||
HH013 = hH013;
|
||||
}
|
||||
public void setHH014(String hH014) {
|
||||
HH014 = hH014;
|
||||
}
|
||||
public String getXT_NO() {
|
||||
return XT_NO;
|
||||
}
|
||||
public void setXT_NO(String xT_NO) {
|
||||
XT_NO = xT_NO;
|
||||
}
|
||||
public String getCARD_HOLDER() {
|
||||
return CARD_HOLDER;
|
||||
}
|
||||
public void setCARD_HOLDER(String cARD_HOLDER) {
|
||||
CARD_HOLDER = cARD_HOLDER;
|
||||
}
|
||||
public String getCARD_NO() {
|
||||
return CARD_NO;
|
||||
}
|
||||
public String getXT_MONTH01() {
|
||||
return XT_MONTH01;
|
||||
}
|
||||
public String getXT_MONTH02() {
|
||||
return XT_MONTH02;
|
||||
}
|
||||
public String getXT_MONTH03() {
|
||||
return XT_MONTH03;
|
||||
}
|
||||
public String getXT_MONTH04() {
|
||||
return XT_MONTH04;
|
||||
}
|
||||
public String getXT_MONTH05() {
|
||||
return XT_MONTH05;
|
||||
}
|
||||
public String getXT_MONTH06() {
|
||||
return XT_MONTH06;
|
||||
}
|
||||
public void setCARD_NO(String cARD_NO) {
|
||||
CARD_NO = cARD_NO;
|
||||
}
|
||||
public void setXT_MONTH01(String xT_MONTH01) {
|
||||
XT_MONTH01 = xT_MONTH01;
|
||||
}
|
||||
public void setXT_MONTH02(String xT_MONTH02) {
|
||||
XT_MONTH02 = xT_MONTH02;
|
||||
}
|
||||
public void setXT_MONTH03(String xT_MONTH03) {
|
||||
XT_MONTH03 = xT_MONTH03;
|
||||
}
|
||||
public void setXT_MONTH04(String xT_MONTH04) {
|
||||
XT_MONTH04 = xT_MONTH04;
|
||||
}
|
||||
public void setXT_MONTH05(String xT_MONTH05) {
|
||||
XT_MONTH05 = xT_MONTH05;
|
||||
}
|
||||
public void setXT_MONTH06(String xT_MONTH06) {
|
||||
XT_MONTH06 = xT_MONTH06;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Price {
|
||||
|
||||
private List<List<ADT>> ADT;
|
||||
|
||||
public void setADT(List<List<ADT>> ADT) {
|
||||
this.ADT = ADT;
|
||||
}
|
||||
|
||||
public List<List<ADT>> getADT() {
|
||||
return ADT;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author wangyan E-mail:wangyan@pospt.cn
|
||||
* @version 创建时间:2017年9月11日 上午9:33:01 类说明
|
||||
*/
|
||||
public class ProductResBase implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -6708040074002451511L;
|
||||
/**
|
||||
* 请求结果成功0
|
||||
*/
|
||||
public static final int REQUEST_RESULT_SUCCESS = 0;
|
||||
/**
|
||||
* 请求结果失败 1
|
||||
*/
|
||||
public static final int REQUEST_RESULT_FIAL = 1;
|
||||
/**
|
||||
* 成功code
|
||||
*/
|
||||
public static final String REQUEST_CODE_SUCCESS = "0000";
|
||||
/**
|
||||
* 结果 成功0 失败1
|
||||
*/
|
||||
private int resResult = 0;
|
||||
private String resCode = "0000";
|
||||
private String resMsg = "success";
|
||||
|
||||
/**
|
||||
* 成本总计
|
||||
*/
|
||||
private Integer costTotal;
|
||||
|
||||
public Integer getCostTotal() {
|
||||
return costTotal;
|
||||
}
|
||||
|
||||
public ProductResBase setCostTotal(Integer costTotal) {
|
||||
this.costTotal = costTotal;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getResResult() {
|
||||
return resResult;
|
||||
}
|
||||
|
||||
public String getResCode() {
|
||||
return resCode;
|
||||
}
|
||||
|
||||
public String getResMsg() {
|
||||
return resMsg;
|
||||
}
|
||||
|
||||
public ProductResBase setResResult(int resResult) {
|
||||
this.resResult = resResult;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProductResBase setResCode(String resCode) {
|
||||
this.resCode = resCode;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProductResBase setResMsg(String resMsg) {
|
||||
this.resMsg = resMsg;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class ResultDto<T> implements Serializable {
|
||||
private static final long serialVersionUID = -1417999729205654379L;
|
||||
|
||||
/**
|
||||
* 成功码.
|
||||
*/
|
||||
public static final int SUCCESS_CODE = 200;
|
||||
|
||||
/**
|
||||
* 成功信息.
|
||||
*/
|
||||
public static final String SUCCESS_MESSAGE = "操作成功";
|
||||
|
||||
/**
|
||||
* 错误码.
|
||||
*/
|
||||
public static final int ERROR_CODE = 500;
|
||||
|
||||
/**
|
||||
* 错误信息.
|
||||
*/
|
||||
public static final String ERROR_MESSAGE = "内部异常";
|
||||
|
||||
/**
|
||||
* 错误码:参数非法
|
||||
*/
|
||||
public static final int ILLEGAL_ARGUMENT_CODE_ = 100;
|
||||
|
||||
/**
|
||||
* 错误信息:参数非法
|
||||
*/
|
||||
public static final String ILLEGAL_ARGUMENT_MESSAGE = "参数非法";
|
||||
|
||||
/**
|
||||
* 编号.
|
||||
*/
|
||||
private int code;
|
||||
|
||||
/**
|
||||
* 信息.
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 结果数据
|
||||
*/
|
||||
private T result;
|
||||
|
||||
/**
|
||||
* Instantiates a new wrapper. default code=200
|
||||
*/
|
||||
public ResultDto() {
|
||||
this(SUCCESS_CODE, SUCCESS_MESSAGE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new wrapper.
|
||||
*
|
||||
* @param code the code
|
||||
* @param message the message
|
||||
*/
|
||||
public ResultDto(int code, String message) {
|
||||
this(code, message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new wrapper.
|
||||
*
|
||||
* @param code the code
|
||||
* @param message the message
|
||||
* @param result the result
|
||||
*/
|
||||
ResultDto(int code, String message, T result) {
|
||||
super();
|
||||
this.code(code).message(message).result(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the 编号 , 返回自身的引用.
|
||||
*
|
||||
* @param code the new 编号
|
||||
* @return the wrapper
|
||||
*/
|
||||
private ResultDto<T> code(int code) {
|
||||
this.setCode(code);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the 信息 , 返回自身的引用.
|
||||
*
|
||||
* @param message the new 信息
|
||||
* @return the wrapper
|
||||
*/
|
||||
private ResultDto<T> message(String message) {
|
||||
this.setMessage(message);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the 结果数据 , 返回自身的引用.
|
||||
*
|
||||
* @param result the new 结果数据
|
||||
* @return the wrapper
|
||||
*/
|
||||
public ResultDto<T> result(T result) {
|
||||
this.setResult(result);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否成功: 依据 ResultDto.SUCCESS_CODE == this.code
|
||||
*
|
||||
* @return code =200,true;否则 false.
|
||||
*/
|
||||
public boolean success() {
|
||||
return ResultDto.SUCCESS_CODE == this.code;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否成功: 依据 ResultDto.SUCCESS_CODE != this.code
|
||||
*
|
||||
* @return code !=200,true;否则 false.
|
||||
*/
|
||||
public boolean error() {
|
||||
return !success();
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public T getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(T result) {
|
||||
this.result = result;
|
||||
}
|
||||
}
|
||||
25
hutool-json/src/test/java/cn/hutool/json/test/bean/Seq.java
Normal file
25
hutool-json/src/test/java/cn/hutool/json/test/bean/Seq.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class Seq {
|
||||
private String seq;
|
||||
|
||||
public Seq() {
|
||||
}
|
||||
|
||||
public Seq(String seq) {
|
||||
this.seq = seq;
|
||||
}
|
||||
|
||||
public String getSeq() {
|
||||
return seq;
|
||||
}
|
||||
|
||||
public void setSeq(String seq) {
|
||||
this.seq = seq;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Seq [seq=" + seq + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class TokenAuthResponse {
|
||||
private String token;
|
||||
private String userId;
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
public void setToken(String token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class TokenAuthWarp extends UUMap<TokenAuthResponse> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String targetUrl;
|
||||
private String success;
|
||||
|
||||
public String getTargetUrl() {
|
||||
return targetUrl;
|
||||
}
|
||||
|
||||
public void setTargetUrl(String targetUrl) {
|
||||
this.targetUrl = targetUrl;
|
||||
}
|
||||
|
||||
public String getSuccess() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public void setSuccess(String success) {
|
||||
this.success = success;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class TokenAuthWarp2 extends TokenAuthWarp {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class UUMap<T> implements Serializable{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private T result;
|
||||
|
||||
public T getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(T result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class UserA {
|
||||
private String name;
|
||||
private String a;
|
||||
private Date date;
|
||||
private List<Seq> sqs;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getA() {
|
||||
return a;
|
||||
}
|
||||
public void setA(String a) {
|
||||
this.a = a;
|
||||
}
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
public List<Seq> getSqs() {
|
||||
return sqs;
|
||||
}
|
||||
public void setSqs(List<Seq> sqs) {
|
||||
this.sqs = sqs;
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserA [name=" + name + ", a=" + a + ", date=" + date + ", sqs=" + sqs + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class UserB {
|
||||
private String name;
|
||||
private String b;
|
||||
private Date date;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getB() {
|
||||
return b;
|
||||
}
|
||||
public void setB(String a) {
|
||||
this.b = a;
|
||||
}
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
public class UserC {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String prop;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getProp() {
|
||||
return prop;
|
||||
}
|
||||
|
||||
public void setProp(String prop) {
|
||||
this.prop = prop;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
* @author 质量过关
|
||||
*
|
||||
*/
|
||||
public class UserInfoDict implements Serializable {
|
||||
private static final long serialVersionUID = -936213991463284306L;
|
||||
// 用户Id
|
||||
private Integer id;
|
||||
// 要展示的名字
|
||||
private String realName;
|
||||
// 头像地址
|
||||
private String photoPath;
|
||||
private List<ExamInfoDict> examInfoDict;
|
||||
private UserInfoRedundCount userInfoRedundCount;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getRealName() {
|
||||
return realName;
|
||||
}
|
||||
public void setRealName(String realName) {
|
||||
this.realName = realName;
|
||||
}
|
||||
|
||||
public String getPhotoPath() {
|
||||
return photoPath;
|
||||
}
|
||||
public void setPhotoPath(String photoPath) {
|
||||
this.photoPath = photoPath;
|
||||
}
|
||||
|
||||
public List<ExamInfoDict> getExamInfoDict() {
|
||||
return examInfoDict;
|
||||
}
|
||||
public void setExamInfoDict(List<ExamInfoDict> examInfoDict) {
|
||||
this.examInfoDict = examInfoDict;
|
||||
}
|
||||
|
||||
public UserInfoRedundCount getUserInfoRedundCount() {
|
||||
return userInfoRedundCount;
|
||||
}
|
||||
public void setUserInfoRedundCount(UserInfoRedundCount userInfoRedundCount) {
|
||||
this.userInfoRedundCount = userInfoRedundCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
UserInfoDict that = (UserInfoDict) o;
|
||||
return Objects.equals(id, that.id) && Objects.equals(realName, that.realName) && Objects.equals(photoPath, that.photoPath) && Objects.equals(examInfoDict, that.examInfoDict);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, realName, photoPath, examInfoDict);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UserInfoDict [id=" + id + ", realName=" + realName + ", photoPath=" + photoPath + ", examInfoDict=" + examInfoDict + ", userInfoRedundCount=" + userInfoRedundCount + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class UserInfoRedundCount implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8397291070139255181L;
|
||||
private String finishedRatio; // 完成率
|
||||
|
||||
private Integer ownershipExamCount; // 自己有多少道题
|
||||
|
||||
private Integer answeredExamCount; // 当前回答了多少道题
|
||||
|
||||
public Integer getOwnershipExamCount() {
|
||||
return ownershipExamCount;
|
||||
}
|
||||
|
||||
public void setOwnershipExamCount(Integer ownershipExamCount) {
|
||||
this.ownershipExamCount = ownershipExamCount;
|
||||
}
|
||||
|
||||
public Integer getAnsweredExamCount() {
|
||||
return answeredExamCount;
|
||||
}
|
||||
|
||||
public void setAnsweredExamCount(Integer answeredExamCount) {
|
||||
this.answeredExamCount = answeredExamCount;
|
||||
}
|
||||
|
||||
public String getFinishedRatio() {
|
||||
return finishedRatio;
|
||||
}
|
||||
|
||||
public void setFinishedRatio(String finishedRatio) {
|
||||
this.finishedRatio = finishedRatio;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package cn.hutool.json.test.bean;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class UserWithMap {
|
||||
private Map<String, String> data;
|
||||
|
||||
public Map<String, String> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Map<String, String> data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package cn.hutool.json.test.bean.report;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 测试用例报告
|
||||
* @author xuwangcheng
|
||||
* @version 20181012
|
||||
*
|
||||
*/
|
||||
public class CaseReport {
|
||||
|
||||
/**
|
||||
* 包含的测试步骤报告
|
||||
*/
|
||||
private List<StepReport> stepReports = new ArrayList<StepReport>();
|
||||
|
||||
public List<StepReport> getStepReports() {
|
||||
return stepReports;
|
||||
}
|
||||
|
||||
public void setStepReports(List<StepReport> stepReports) {
|
||||
this.stepReports = stepReports;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CaseReport [stepReports=" + stepReports + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
package cn.hutool.json.test.bean.report;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 测试环境信息
|
||||
* @author xuwangcheng
|
||||
* @version 20181012
|
||||
*
|
||||
*/
|
||||
public class EnvSettingInfo {
|
||||
|
||||
public static boolean DEV_MODE = true;
|
||||
|
||||
private boolean remoteMode;
|
||||
|
||||
private String hubRemoteUrl;
|
||||
|
||||
private String reportFolder = "/report";
|
||||
private String screenshotFolder = "/screenshot";;
|
||||
|
||||
private String elementFolder = "/config/element/";
|
||||
private String suiteFolder = "/config/suite/";
|
||||
|
||||
private String chromeDriverPath = "/src/main/resources/chromedriver.exe";
|
||||
private String ieDriverPath = "/src/main/resources/IEDriverServer.exe";
|
||||
private String operaDriverPath = "/src/main/resources/operadriver.exe";
|
||||
private String firefoxDriverPath = "/src/main/resources/geckodriver.exe";
|
||||
|
||||
private Double defaultSleepSeconds;
|
||||
|
||||
private Integer elementLocationRetryCount;
|
||||
private Double elementLocationTimeouts;
|
||||
|
||||
/**
|
||||
* 收件人列表
|
||||
*/
|
||||
private Collection<String> tos;
|
||||
/**
|
||||
* 抄送人列表
|
||||
*/
|
||||
private Collection<String> ccs;
|
||||
/**
|
||||
* 密送人列表
|
||||
*/
|
||||
private Collection<String> bccs;
|
||||
|
||||
/**
|
||||
* 是否可以开启定时任务
|
||||
*/
|
||||
private boolean cronEnabled = false;
|
||||
|
||||
/**
|
||||
* 定时执行:suite文件
|
||||
*/
|
||||
private String cronSuite;
|
||||
|
||||
/**
|
||||
* 定时执行:cron表达式,支持linux crontab格式(5位)和Quartz的cron格式(6位)
|
||||
*/
|
||||
private String cronExpression;
|
||||
|
||||
/**
|
||||
* 存储测试报告数据的轻量级数据库,路径
|
||||
*/
|
||||
private String sqlitePath;
|
||||
|
||||
public EnvSettingInfo() {
|
||||
super();
|
||||
}
|
||||
|
||||
public void setSqlitePath(String sqlitePath) {
|
||||
this.sqlitePath = sqlitePath;
|
||||
}
|
||||
|
||||
public String getSqlitePath() {
|
||||
return sqlitePath;
|
||||
}
|
||||
|
||||
public void setCronEnabled(boolean cronEnabled) {
|
||||
this.cronEnabled = cronEnabled;
|
||||
}
|
||||
|
||||
public boolean isCronEnabled() {
|
||||
return cronEnabled;
|
||||
}
|
||||
|
||||
public String getCronSuite() {
|
||||
return cronSuite;
|
||||
}
|
||||
|
||||
public void setCronSuite(String cronSuite) {
|
||||
this.cronSuite = cronSuite;
|
||||
}
|
||||
|
||||
public String getCronExpression() {
|
||||
return cronExpression;
|
||||
}
|
||||
|
||||
public void setCronExpression(String cronExpression) {
|
||||
this.cronExpression = cronExpression;
|
||||
}
|
||||
|
||||
public Integer getElementLocationRetryCount() {
|
||||
return elementLocationRetryCount;
|
||||
}
|
||||
|
||||
public void setElementLocationRetryCount(Integer elementLocationRetryCount) {
|
||||
this.elementLocationRetryCount = elementLocationRetryCount;
|
||||
}
|
||||
|
||||
public Double getElementLocationTimeouts() {
|
||||
return elementLocationTimeouts;
|
||||
}
|
||||
|
||||
public void setElementLocationTimeouts(Double elementLocationTimeouts) {
|
||||
this.elementLocationTimeouts = elementLocationTimeouts;
|
||||
}
|
||||
|
||||
public String getElementFolder() {
|
||||
return elementFolder;
|
||||
}
|
||||
|
||||
public void setElementFolder(String elementFolder) {
|
||||
this.elementFolder = elementFolder;
|
||||
}
|
||||
|
||||
public String getSuiteFolder() {
|
||||
return suiteFolder;
|
||||
}
|
||||
|
||||
public void setSuiteFolder(String suiteFolder) {
|
||||
this.suiteFolder = suiteFolder;
|
||||
}
|
||||
|
||||
public boolean isRemoteMode() {
|
||||
return remoteMode;
|
||||
}
|
||||
|
||||
public void setRemoteMode(boolean remoteMode) {
|
||||
this.remoteMode = remoteMode;
|
||||
}
|
||||
|
||||
public String getHubRemoteUrl() {
|
||||
return hubRemoteUrl;
|
||||
}
|
||||
|
||||
public void setHubRemoteUrl(String hubRemoteUrl) {
|
||||
this.hubRemoteUrl = hubRemoteUrl;
|
||||
}
|
||||
|
||||
public String getReportFolder() {
|
||||
return reportFolder;
|
||||
}
|
||||
|
||||
public void setReportFolder(String reportFolder) {
|
||||
this.reportFolder = reportFolder;
|
||||
}
|
||||
|
||||
public String getScreenshotFolder() {
|
||||
return screenshotFolder;
|
||||
}
|
||||
|
||||
public void setScreenshotFolder(String screenshotFolder) {
|
||||
this.screenshotFolder = screenshotFolder;
|
||||
}
|
||||
|
||||
public String getChromeDriverPath() {
|
||||
return chromeDriverPath;
|
||||
}
|
||||
|
||||
public void setChromeDriverPath(String chromeDriverPath) {
|
||||
this.chromeDriverPath = chromeDriverPath;
|
||||
}
|
||||
|
||||
public String getIeDriverPath() {
|
||||
return ieDriverPath;
|
||||
}
|
||||
|
||||
public void setIeDriverPath(String ieDriverPath) {
|
||||
this.ieDriverPath = ieDriverPath;
|
||||
}
|
||||
|
||||
public String getOperaDriverPath() {
|
||||
return operaDriverPath;
|
||||
}
|
||||
|
||||
public void setOperaDriverPath(String operaDriverPath) {
|
||||
this.operaDriverPath = operaDriverPath;
|
||||
}
|
||||
|
||||
public String getFirefoxDriverPath() {
|
||||
return firefoxDriverPath;
|
||||
}
|
||||
|
||||
public void setFirefoxDriverPath(String firefoxDriverPath) {
|
||||
this.firefoxDriverPath = firefoxDriverPath;
|
||||
}
|
||||
|
||||
public Double getDefaultSleepSeconds() {
|
||||
return defaultSleepSeconds;
|
||||
}
|
||||
|
||||
public void setDefaultSleepSeconds(Double defaultSleepSeconds) {
|
||||
this.defaultSleepSeconds = defaultSleepSeconds;
|
||||
}
|
||||
|
||||
public Collection<String> getTos() {
|
||||
return tos;
|
||||
}
|
||||
|
||||
public void setTos(Collection<String> tos) {
|
||||
this.tos = tos;
|
||||
}
|
||||
|
||||
public Collection<String> getCcs() {
|
||||
return ccs;
|
||||
}
|
||||
|
||||
public void setCcs(Collection<String> ccs) {
|
||||
this.ccs = ccs;
|
||||
}
|
||||
|
||||
public Collection<String> getBccs() {
|
||||
return bccs;
|
||||
}
|
||||
|
||||
public void setBccs(Collection<String> bccs) {
|
||||
this.bccs = bccs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EnvSettingInfo [remoteMode=" + remoteMode + ", hubRemoteUrl=" + hubRemoteUrl + ", reportFolder="
|
||||
+ reportFolder + ", screenshotFolder=" + screenshotFolder + ", elementFolder=" + elementFolder
|
||||
+ ", suiteFolder=" + suiteFolder + ", chromeDriverPath=" + chromeDriverPath + ", ieDriverPath="
|
||||
+ ieDriverPath + ", operaDriverPath=" + operaDriverPath + ", firefoxDriverPath=" + firefoxDriverPath
|
||||
+ ", defaultSleepSeconds=" + defaultSleepSeconds + ", elementLocationRetryCount="
|
||||
+ elementLocationRetryCount + ", elementLocationTimeouts=" + elementLocationTimeouts + ", mailAccount="
|
||||
+ 1 + ", tos=" + tos + ", ccs=" + ccs + ", bccs=" + bccs + ", cronEnabled=" + cronEnabled
|
||||
+ ", cronSuite=" + cronSuite + ", cronExpression=" + cronExpression + "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
package cn.hutool.json.test.bean.report;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
/**
|
||||
* 测试步骤报告
|
||||
* @author xuwangcheng
|
||||
* @version 20181012
|
||||
*
|
||||
*/
|
||||
public class StepReport {
|
||||
private static int step_id = 0;
|
||||
|
||||
private int stepId = getId();
|
||||
/**
|
||||
* 步骤名称
|
||||
*/
|
||||
private String stepName;
|
||||
/**
|
||||
* 元素名称
|
||||
*/
|
||||
private String elementName;
|
||||
/**
|
||||
* 元素定位器
|
||||
*/
|
||||
private String location;
|
||||
/**
|
||||
* 参数
|
||||
*/
|
||||
private String params;
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private String result;
|
||||
/**
|
||||
* 操作名称,中文
|
||||
*/
|
||||
private String actionName;
|
||||
/**
|
||||
* 测试时间
|
||||
*/
|
||||
private String testTime;
|
||||
|
||||
/**
|
||||
* 测试状态:true-成功 false-失败
|
||||
*/
|
||||
private boolean status = true;
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
private String mark;
|
||||
/**
|
||||
* 截图路径:相对路径
|
||||
*/
|
||||
private String screenshot;
|
||||
|
||||
private static synchronized int getId() {
|
||||
return step_id++;
|
||||
}
|
||||
|
||||
public int getStepId() {
|
||||
return stepId;
|
||||
}
|
||||
|
||||
public void setStepId(int stepId) {
|
||||
this.stepId = stepId;
|
||||
}
|
||||
|
||||
public void setResult(String result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public String getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public String getStepName() {
|
||||
return stepName;
|
||||
}
|
||||
|
||||
public void setStepName(String stepName) {
|
||||
this.stepName = stepName;
|
||||
}
|
||||
|
||||
public void setStepName() {
|
||||
this.stepName = this.actionName + (StrUtil.isBlank(this.elementName) ? "" : " => " + this.elementName);
|
||||
}
|
||||
|
||||
public String getElementName() {
|
||||
return elementName;
|
||||
}
|
||||
|
||||
public void setElementName(String elementName) {
|
||||
this.elementName = elementName;
|
||||
}
|
||||
|
||||
public String getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
public void setLocation(String location) {
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public String getParams() {
|
||||
return params;
|
||||
}
|
||||
|
||||
public void setParams(String params) {
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
public String getActionName() {
|
||||
return actionName;
|
||||
}
|
||||
|
||||
public void setActionName(String actionName) {
|
||||
this.actionName = actionName;
|
||||
}
|
||||
|
||||
public String getTestTime() {
|
||||
return testTime;
|
||||
}
|
||||
|
||||
public void setTestTime(String testTime) {
|
||||
this.testTime = testTime;
|
||||
}
|
||||
|
||||
public boolean isStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(boolean status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getMark() {
|
||||
return mark;
|
||||
}
|
||||
|
||||
public void setMark(String mark) {
|
||||
this.mark = mark;
|
||||
}
|
||||
|
||||
public String getScreenshot() {
|
||||
return screenshot;
|
||||
}
|
||||
|
||||
public void setScreenshot(String screenshot) {
|
||||
this.screenshot = screenshot;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "StepReport [stepId=" + stepId + ", stepName=" + stepName + ", elementName=" + elementName
|
||||
+ ", location=" + location + ", params=" + params + ", result=" + result + ", actionName=" + actionName
|
||||
+ ", testTime=" + testTime + ", status=" + status + ", mark=" + mark + ", screenshot=" + screenshot
|
||||
+ "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package cn.hutool.json.test.bean.report;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 测试套件报告
|
||||
* @author xuwangcheng
|
||||
* @version 20181012
|
||||
*
|
||||
*/
|
||||
public class SuiteReport {
|
||||
|
||||
/**
|
||||
* 包含的用例测试报告
|
||||
*/
|
||||
private List<CaseReport> caseReports = new ArrayList<CaseReport>();
|
||||
|
||||
public List<CaseReport> getCaseReports() {
|
||||
return caseReports;
|
||||
}
|
||||
|
||||
public void setCaseReports(List<CaseReport> caseReports) {
|
||||
this.caseReports = caseReports;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SuiteReport [caseReports=" + caseReports + "]";
|
||||
}
|
||||
}
|
||||
126
hutool-json/src/test/resources/evaluation.json
Normal file
126
hutool-json/src/test/resources/evaluation.json
Normal file
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"HF003": "武汉市",
|
||||
"HF002": "585.37",
|
||||
"HF005": "",
|
||||
"HF004": "154",
|
||||
"costTotal": 12,
|
||||
"HF001": "北京市",
|
||||
"HF007": "北京市",
|
||||
"HF006": "0",
|
||||
"HF009": "",
|
||||
"HF008": "武汉市",
|
||||
"HH010": "0",
|
||||
"resResult": 0,
|
||||
"HH011": "394.3",
|
||||
"HH012": "7",
|
||||
"HH013": "0",
|
||||
"HH014": "0",
|
||||
"XT_NO": "2017101714250003",
|
||||
"resMsg": "success",
|
||||
"HH008": "0",
|
||||
"HH009": "0",
|
||||
"HH006": "0",
|
||||
"HH007": "0",
|
||||
"HH004": "0",
|
||||
"HH005": "0",
|
||||
"HH002": "1",
|
||||
"HH003": "0",
|
||||
"HH001": "38.93",
|
||||
"resCode": "0000",
|
||||
"HD002": "77",
|
||||
"HD001": "1",
|
||||
"HG008": "0",
|
||||
"HE004": "0",
|
||||
"HG007": "0",
|
||||
"HE003": "0",
|
||||
"HE002": "2",
|
||||
"HG009": "0",
|
||||
"HE001": "1",
|
||||
"HG004": "4",
|
||||
"HE008": "139.55",
|
||||
"HG003": "164.18",
|
||||
"HE007": "50",
|
||||
"HG006": "1",
|
||||
"HD008": "0",
|
||||
"HE006": "0",
|
||||
"HG005": "77",
|
||||
"HE005": "0",
|
||||
"HD007": "0",
|
||||
"HD004": "0.0",
|
||||
"HG002": "7",
|
||||
"HE009": "0",
|
||||
"HD005": "0.0",
|
||||
"HG001": "259.4",
|
||||
"HE011": "0",
|
||||
"HE010": "0",
|
||||
"HE013": "1",
|
||||
"HE012": "0",
|
||||
"HE015": "0",
|
||||
"HE014": "0",
|
||||
"HE017": "3",
|
||||
"HG016": "商户",
|
||||
"HE016": "0",
|
||||
"HG015": "商户",
|
||||
"HE019": "20",
|
||||
"HG014": "餐馆",
|
||||
"HE018": "2",
|
||||
"HG013": "计算机商店",
|
||||
"HG012": "仓储大超市",
|
||||
"HG011": "3",
|
||||
"HG010": "0",
|
||||
"HB001": "1",
|
||||
"HB003": "631",
|
||||
"HB002": "492",
|
||||
"HE026": "1",
|
||||
"HE025": "1",
|
||||
"HE024": "59.76",
|
||||
"HE023": "93.83",
|
||||
"HE022": "0",
|
||||
"HE021": "0",
|
||||
"XT_MONTH02": "2017/04",
|
||||
"HE020": "0",
|
||||
"XT_MONTH01": "2017/03",
|
||||
"HE029": "0",
|
||||
"CARD_HOLDER": "王雁",
|
||||
"HE028": "0",
|
||||
"HE027": "0",
|
||||
"CARD_NO": "6225768752646560",
|
||||
"HC016": "103.02",
|
||||
"HC015": "93.83",
|
||||
"HC014": "0",
|
||||
"HC013": "0",
|
||||
"HC012": "213.73",
|
||||
"HC011": "90",
|
||||
"HC010": "3",
|
||||
"HE035": "0",
|
||||
"HE034": "0",
|
||||
"HE036": "43.26",
|
||||
"HD010": "0",
|
||||
"HE031": "20",
|
||||
"HD011": "0",
|
||||
"HE030": "1",
|
||||
"HE033": "0",
|
||||
"HD013": "11.00",
|
||||
"HE032": "74.18",
|
||||
"HD014": "423.58",
|
||||
"HA002": "金卡",
|
||||
"HA001": "招商银行",
|
||||
"HD016": "8",
|
||||
"HA004": "4",
|
||||
"HD017": "7",
|
||||
"HF010": "8",
|
||||
"HA003": "招商银行信用卡",
|
||||
"HC008": "0",
|
||||
"HC007": "0",
|
||||
"HC009": "3",
|
||||
"HC004": "83.43",
|
||||
"HC003": "2.0",
|
||||
"HC006": "3",
|
||||
"HC005": "3",
|
||||
"XT_MONTH05": "2017/07",
|
||||
"XT_MONTH06": "2017/08",
|
||||
"HC002": "500.58",
|
||||
"XT_MONTH03": "2017/05",
|
||||
"HC001": "12",
|
||||
"XT_MONTH04": "2017/06"
|
||||
}
|
||||
281
hutool-json/src/test/resources/exam_test.json
Normal file
281
hutool-json/src/test/resources/exam_test.json
Normal file
@@ -0,0 +1,281 @@
|
||||
[
|
||||
{
|
||||
"id": 1753,
|
||||
"examNumber": 1,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 0
|
||||
}
|
||||
],
|
||||
"isRight": 1,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1754,
|
||||
"examNumber": 2,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1756,
|
||||
"examNumber": 3,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
},
|
||||
{
|
||||
"seq": 2
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1757,
|
||||
"examNumber": 4,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
},
|
||||
{
|
||||
"seq": 3
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1759,
|
||||
"examNumber": 5,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 0
|
||||
}
|
||||
],
|
||||
"isRight": 1,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1760,
|
||||
"examNumber": 6,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1762,
|
||||
"examNumber": 7,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "公司的发生地方"
|
||||
},
|
||||
{
|
||||
"detailContent": "告诉对方"
|
||||
},
|
||||
{
|
||||
"detailContent": "二位水电费"
|
||||
},
|
||||
{
|
||||
"detailContent": "公司东方闪电"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1763,
|
||||
"examNumber": 8,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "告诉对方s"
|
||||
},
|
||||
{
|
||||
"detailContent": "公司垫付多少"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1765,
|
||||
"examNumber": 9,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg,http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg"
|
||||
}
|
||||
],
|
||||
"isSubject": 1
|
||||
},
|
||||
{
|
||||
"id": 1766,
|
||||
"examNumber": 10,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg,http://…_1.jpg,http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg"
|
||||
}
|
||||
],
|
||||
"isSubject": 1
|
||||
},
|
||||
{
|
||||
"id": 0,
|
||||
"examNumber": 11,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 0
|
||||
}
|
||||
],
|
||||
"isRight": 1,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"examNumber": 12,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"examNumber": 13,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 0
|
||||
}
|
||||
],
|
||||
"isRight": 1,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"examNumber": 14,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"seq": 1
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"examNumber": 15,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "公司东方闪电"
|
||||
},
|
||||
{
|
||||
"detailContent": "国顺副食店"
|
||||
},
|
||||
{
|
||||
"detailContent": "无二水电费是的"
|
||||
},
|
||||
{
|
||||
"detailContent": "公司东方闪电"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"examNumber": 16,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "公司东方闪电"
|
||||
},
|
||||
{
|
||||
"detailContent": "格式的维尔士大夫"
|
||||
},
|
||||
{
|
||||
"detailContent": "公司东风"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"examNumber": 17,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "http://pic6.huitu.com/res/20130116/84481_20130116142820494200_1.jpg"
|
||||
}
|
||||
],
|
||||
"isSubject": 1
|
||||
},
|
||||
{
|
||||
"id": 0,
|
||||
"examNumber": 18,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "告诉对方"
|
||||
},
|
||||
{
|
||||
"detailContent": "个涉外收电费"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 0,
|
||||
"examNumber": 19,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "公司发的"
|
||||
},
|
||||
{
|
||||
"detailContent": "公司东方闪电"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
},
|
||||
{
|
||||
"id": 1774,
|
||||
"examNumber": 20,
|
||||
"isAnswer": true,
|
||||
"answerArray": [
|
||||
{
|
||||
"detailContent": "好改送的非官方的"
|
||||
},
|
||||
{
|
||||
"detailContent": "和是发送到发送到"
|
||||
}
|
||||
],
|
||||
"isRight": 0,
|
||||
"isSubject": 0
|
||||
}
|
||||
]
|
||||
81
hutool-json/src/test/resources/issueIVMD5.json
Normal file
81
hutool-json/src/test/resources/issueIVMD5.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"result": 1,
|
||||
"pagination": {
|
||||
"maxPage": "2057",
|
||||
"totalDataCount": "4114"
|
||||
},
|
||||
"data": [
|
||||
{
|
||||
"birthday": "",
|
||||
"linkPhone": "",
|
||||
"nation": "01",
|
||||
"studentCode": "20170001",
|
||||
"unitiveCode": "20170001",
|
||||
"sex": "2",
|
||||
"linkAddress": "",
|
||||
"identityCard": "",
|
||||
"accountId": "B4DDF491FDF34074AE7A819E1341CB6C",
|
||||
"classId": "8c38f49c4362479cad59fdd5966fed04",
|
||||
"password": "25d55ad283aa400af464c76d713c07ad",
|
||||
"modifyTime": "20190311152351126",
|
||||
"isDeleted": "0",
|
||||
"postalcode": "",
|
||||
"background": "",
|
||||
"schoolId": "D23E00EBA6364220A17BBDB92A361ACA",
|
||||
"studentName": "蓝有城",
|
||||
"sequenceIntId": "1",
|
||||
"nativePlace": "",
|
||||
"id": "2C90488969524E9901696BA2E3D60005",
|
||||
"username": "s0000000002894659"
|
||||
},
|
||||
{
|
||||
"birthday": "20010421000000",
|
||||
"linkPhone": "",
|
||||
"nation": "01",
|
||||
"studentCode": "16000001310001",
|
||||
"unitiveCode": "G452226200104219223",
|
||||
"sex": "2",
|
||||
"linkAddress": "",
|
||||
"identityCard": "",
|
||||
"accountId": "",
|
||||
"classId": "8dbcc4906abc484a83cc0e1e1f0d91a3",
|
||||
"password": "",
|
||||
"modifyTime": "20190327201832000",
|
||||
"isDeleted": "0",
|
||||
"postalcode": "546100",
|
||||
"background": "",
|
||||
"schoolId": "D23E00EBA6364220A17BBDB92A361ACA",
|
||||
"studentName": "韦奇秀",
|
||||
"sequenceIntId": "21",
|
||||
"nativePlace": "451302",
|
||||
"id": "2C90488969BD091C0169BEF12988002A",
|
||||
"username": ""
|
||||
}
|
||||
],
|
||||
"data2": {
|
||||
"birthday": "",
|
||||
"linkPhone": "",
|
||||
"nation": "01",
|
||||
"studentCode": "20170001",
|
||||
"unitiveCode": "20170001",
|
||||
"sex": "2",
|
||||
"linkAddress": "",
|
||||
"identityCard": "",
|
||||
"accountId": "B4DDF491FDF34074AE7A819E1341CB6C",
|
||||
"classId": "8c38f49c4362479cad59fdd5966fed04",
|
||||
"password": "25d55ad283aa400af464c76d713c07ad",
|
||||
"modifyTime": "20190311152351126",
|
||||
"isDeleted": "0",
|
||||
"postalcode": "",
|
||||
"background": "",
|
||||
"schoolId": "D23E00EBA6364220A17BBDB92A361ACA",
|
||||
"studentName": "蓝有城",
|
||||
"sequenceIntId": "1",
|
||||
"nativePlace": "",
|
||||
"id": "2C90488969524E9901696BA2E3D60005",
|
||||
"username": "s0000000002894659"
|
||||
},
|
||||
"nextDataUri": "",
|
||||
"message": "ok",
|
||||
"dataCount": 2
|
||||
}
|
||||
115
hutool-json/src/test/resources/suiteReport.json
Normal file
115
hutool-json/src/test/resources/suiteReport.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"reportName": "Web自动化_20181104194718",
|
||||
"failCount": 0,
|
||||
"finished": true,
|
||||
"title": "Web自动化",
|
||||
"totalCount": 1,
|
||||
"env": {
|
||||
"cronSuite": "testsuite",
|
||||
"firefoxDriverPath": "F:\\Eclipse2017Workplace\\MasterYIUITest/src/main/resources/geckodriver.exe",
|
||||
"mailAccount": {
|
||||
"charset": "UTF-8",
|
||||
"debug": false,
|
||||
"auth": true,
|
||||
"pass": "q1w2e3",
|
||||
"socketFactoryFallback": false,
|
||||
"socketFactoryPort": 465,
|
||||
"startttlsEnable": false,
|
||||
"port": 25,
|
||||
"socketFactoryClass": "javax.net.ssl.SSLSocketFactory",
|
||||
"host": "smtp.yeah.net",
|
||||
"splitlongparameters": false,
|
||||
"from": "hutool@yeah.net",
|
||||
"user": "hutool"
|
||||
},
|
||||
"remoteMode": false,
|
||||
"hubRemoteUrl": "http://192.168.2.40:4444/wd/hub",
|
||||
"screenshotFolder": "/screenshot",
|
||||
"cronEnabled": true,
|
||||
"cronExpression": "*/2 * * * *",
|
||||
"elementFolder": "F:\\Eclipse2017Workplace\\MasterYIUITest/config/element/",
|
||||
"ccs": [""],
|
||||
"elementLocationRetryCount": 3,
|
||||
"sqlitePath": "F:\\Eclipse2017Workplace\\MasterYIUITest\\report.db",
|
||||
"defaultSleepSeconds": 0.5,
|
||||
"suiteFolder": "F:\\Eclipse2017Workplace\\MasterYIUITest/config/suite/",
|
||||
"tos": ["309873223@qq.com", "610421185@qq.com", "xuwangcheng14@163.com"],
|
||||
"ieDriverPath": "F:\\Eclipse2017Workplace\\MasterYIUITest/src/main/resources/IEDriverServer.exe",
|
||||
"elementLocationTimeouts": 9,
|
||||
"reportFolder": "F:\\Eclipse2017Workplace\\MasterYIUITest/report",
|
||||
"operaDriverPath": "F:\\Eclipse2017Workplace\\MasterYIUITest/src/main/resources/operadriver.exe",
|
||||
"chromeDriverPath": "F:\\Eclipse2017Workplace\\MasterYIUITest/src/main/resources/chromedriver.exe",
|
||||
"bccs": [""]
|
||||
},
|
||||
"browserName": ["chrome"],
|
||||
"successCount": 1,
|
||||
"useTime": 11069,
|
||||
"testTime": "2018-11-04 19:47:07",
|
||||
"endTime": "2018-11-04 19:47:18",
|
||||
"skipCount": 0,
|
||||
"caseReports": [{
|
||||
"finishTime": "2018-11-04 19:47:18",
|
||||
"caseName": "百度搜索",
|
||||
"useTime": "6320",
|
||||
"runCount": 0,
|
||||
"caseMethodPath": "com.dcits.test.baidu.usecase.Baidu.search",
|
||||
"stepReports": [{
|
||||
"stepName": "打开Url地址",
|
||||
"stepId": 0,
|
||||
"testTime": "2018-11-04 19:47:11",
|
||||
"params": "https://www.baidu.com/",
|
||||
"actionName": "打开Url地址",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "输入 => 搜索框",
|
||||
"stepId": 1,
|
||||
"location": "id => kw",
|
||||
"testTime": "2018-11-04 19:47:12",
|
||||
"params": "xuwangcheng.com",
|
||||
"elementName": "搜索框",
|
||||
"actionName": "输入",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "点击 => 搜索按钮",
|
||||
"stepId": 2,
|
||||
"location": "id => su",
|
||||
"testTime": "2018-11-04 19:47:14",
|
||||
"params": "",
|
||||
"elementName": "搜索按钮",
|
||||
"actionName": "点击",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "点击 => 搜索结果",
|
||||
"stepId": 3,
|
||||
"location": "xpath => //*[@id=\"1\"]/h3/a",
|
||||
"testTime": "2018-11-04 19:47:15",
|
||||
"params": "",
|
||||
"elementName": "搜索结果",
|
||||
"actionName": "点击",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "切换到指定窗口",
|
||||
"stepId": 4,
|
||||
"testTime": "2018-11-04 19:47:17",
|
||||
"params": "1",
|
||||
"actionName": "切换到指定窗口",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "切换到指定窗口",
|
||||
"stepId": 5,
|
||||
"testTime": "2018-11-04 19:47:17",
|
||||
"params": "0",
|
||||
"actionName": "切换到指定窗口",
|
||||
"status": true
|
||||
}, {
|
||||
"stepName": "刷新页面",
|
||||
"stepId": 6,
|
||||
"testTime": "2018-11-04 19:47:17",
|
||||
"params": "",
|
||||
"actionName": "刷新页面",
|
||||
"status": true
|
||||
}],
|
||||
"browserType": "chrome",
|
||||
"status": "success"
|
||||
}]
|
||||
}
|
||||
Reference in New Issue
Block a user