mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix test
This commit is contained in:
@@ -18,6 +18,7 @@ package org.dromara.hutool.json;
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.hutool.core.collection.ListUtil;
|
||||
import org.dromara.hutool.core.date.DateTime;
|
||||
import org.dromara.hutool.core.date.DateUtil;
|
||||
import org.dromara.hutool.core.map.MapUtil;
|
||||
import org.dromara.hutool.json.test.bean.Price;
|
||||
@@ -144,14 +145,16 @@ public class JSONUtilTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJsonStrTest() {
|
||||
public void toJsonPrettyStrTest() {
|
||||
final DateTime date = DateUtil.date(1727800929605L);
|
||||
final UserA a1 = new UserA();
|
||||
a1.setA("aaaa");
|
||||
a1.setDate(DateUtil.now());
|
||||
a1.setDate(date);
|
||||
a1.setName("AAAAName");
|
||||
|
||||
final UserA a2 = new UserA();
|
||||
a2.setA("aaaa222");
|
||||
a2.setDate(DateUtil.now());
|
||||
a2.setDate(date);
|
||||
a2.setName("AAAA222Name");
|
||||
|
||||
final ArrayList<UserA> list = ListUtil.of(a1, a2);
|
||||
@@ -159,9 +162,22 @@ public class JSONUtilTest {
|
||||
map.put("total", 13);
|
||||
map.put("rows", list);
|
||||
|
||||
final String str = JSONUtil.toJsonPrettyStr(map);
|
||||
JSONUtil.parse(str);
|
||||
Assertions.assertNotNull(str);
|
||||
final String jsonStr = JSONUtil.toJsonPrettyStr(map);
|
||||
Assertions.assertEquals("{\n" +
|
||||
" \"total\": 13,\n" +
|
||||
" \"rows\": [\n" +
|
||||
" {\n" +
|
||||
" \"name\": \"AAAAName\",\n" +
|
||||
" \"a\": \"aaaa\",\n" +
|
||||
" \"date\": 1727800929605\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"name\": \"AAAA222Name\",\n" +
|
||||
" \"a\": \"aaaa222\",\n" +
|
||||
" \"date\": 1727800929605\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
"}", jsonStr);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -16,12 +16,16 @@
|
||||
|
||||
package org.dromara.hutool.json.engine;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.hutool.core.date.DateTime;
|
||||
import org.dromara.hutool.core.date.DateUtil;
|
||||
import org.dromara.hutool.core.date.TimeUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.StringReader;
|
||||
import java.util.Arrays;
|
||||
import java.util.TimeZone;
|
||||
|
||||
@@ -56,6 +60,11 @@ public class JSONEngineTest {
|
||||
Arrays.stream(engineNames).forEach(this::assertEmptyBeanToJson);
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringOrFromStringTest() {
|
||||
Arrays.stream(engineNames).forEach(this::assertToStringOrFromString);
|
||||
}
|
||||
|
||||
private void assertWriteDateFormat(final String engineName) {
|
||||
final DateTime date = DateUtil.parse("2024-01-01 01:12:21");
|
||||
final BeanWithDate bean = new BeanWithDate(date, TimeUtil.of(date));
|
||||
@@ -110,8 +119,37 @@ public class JSONEngineTest {
|
||||
assertEquals("{}", jsonString);
|
||||
}
|
||||
|
||||
private void assertToStringOrFromString(final String engineName) {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine(engineName);
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
|
||||
final String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
if("moshi".equals(engineName)){
|
||||
// TODO Moshi无法指定key的顺序
|
||||
assertEquals("{\"age\":18,\"gender\":true,\"name\":\"张三\"}", engine.toJsonString(testBean));
|
||||
}else{
|
||||
assertEquals(jsonStr, engine.toJsonString(testBean));
|
||||
}
|
||||
|
||||
final TestBean testBean1 = engine.deserialize(new StringReader(jsonStr), TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Data
|
||||
private static class EmptyBean{
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
static class TestBean {
|
||||
// 解决输出顺序问题
|
||||
@JSONField(ordinal = 1)
|
||||
private String name;
|
||||
@JSONField(ordinal = 2)
|
||||
private int age;
|
||||
@JSONField(ordinal = 3)
|
||||
private boolean gender;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user