mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
add test
This commit is contained in:
parent
ea56cc567c
commit
09f6123479
@ -31,7 +31,7 @@ public class FastJSONTest {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("fastjson");
|
||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
||||
|
||||
final JSONEngineFactoryTest.TestBean testBean = new JSONEngineFactoryTest.TestBean("张三", 18, true);
|
||||
final JSONEngineTest.TestBean testBean = new JSONEngineTest.TestBean("张三", 18, true);
|
||||
String jsonString = engine.toJsonString(testBean);
|
||||
// 使用统一换行符
|
||||
jsonString = StrUtil.removeAll(jsonString, '\r');
|
||||
|
@ -34,7 +34,7 @@ public class GsonTest {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
||||
|
||||
final JSONEngineFactoryTest.TestBean testBean = new JSONEngineFactoryTest.TestBean("张三", 18, true);
|
||||
final JSONEngineTest.TestBean testBean = new JSONEngineTest.TestBean("张三", 18, true);
|
||||
final String jsonString = engine.toJsonString(testBean);
|
||||
// 使用统一换行符
|
||||
Assertions.assertEquals("{\n" +
|
||||
|
@ -25,7 +25,7 @@ public class HutoolJSONTest {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
||||
|
||||
final JSONEngineFactoryTest.TestBean testBean = new JSONEngineFactoryTest.TestBean("张三", 18, true);
|
||||
final JSONEngineTest.TestBean testBean = new JSONEngineTest.TestBean("张三", 18, true);
|
||||
final String jsonString = engine.toJsonString(testBean);
|
||||
Assertions.assertEquals("{\n" +
|
||||
" \"name\": \"张三\",\n" +
|
||||
|
@ -16,17 +16,11 @@
|
||||
|
||||
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.json.engine.fastjson.FastJSON2Engine;
|
||||
import org.dromara.hutool.json.engine.gson.GsonEngine;
|
||||
import org.dromara.hutool.json.engine.jackson.JacksonEngine;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class JSONEngineFactoryTest {
|
||||
@ -40,84 +34,23 @@ public class JSONEngineFactoryTest {
|
||||
void jacksonTest() {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
||||
assertEquals(JacksonEngine.class, engine.getClass());
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
final String jsonString = engine.toJsonString(testBean);
|
||||
|
||||
final String resultJsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
assertEquals(resultJsonStr, jsonString);
|
||||
|
||||
final TestBean testBean1 = engine.fromJsonString(resultJsonStr, TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void jacksonTest2() {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
||||
assertEquals(JacksonEngine.class, engine.getClass());
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
final String serialize = engine.toJsonString(testBean);
|
||||
|
||||
final String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
assertEquals(jsonStr, serialize);
|
||||
|
||||
final TestBean testBean1 = engine.fromJsonString(jsonStr, TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void GsonTest() {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
||||
assertEquals(GsonEngine.class, engine.getClass());
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
|
||||
final String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
assertEquals(jsonStr, engine.toJsonString(testBean));
|
||||
|
||||
final TestBean testBean1 = engine.deserialize(new StringReader(jsonStr), TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fastJSON2Test() {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("fastjson");
|
||||
assertEquals(FastJSON2Engine.class, engine.getClass());
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
|
||||
final String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
assertEquals(jsonStr, engine.toJsonString(testBean));
|
||||
|
||||
final TestBean testBean1 = engine.deserialize(new StringReader(jsonStr), TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void HutoolJSONTest() {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
||||
assertEquals(HutoolJSONEngine.class, engine.getClass());
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
|
||||
final String jsonStr = "{\"name\":\"张三\",\"age\":18,\"gender\":true}";
|
||||
assertEquals(jsonStr, engine.toJsonString(testBean));
|
||||
|
||||
final TestBean testBean1 = engine.deserialize(new StringReader(jsonStr), TestBean.class);
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
static class TestBean {
|
||||
// 解决输出顺序问题
|
||||
@JSONField(ordinal = 1)
|
||||
private String name;
|
||||
@JSONField(ordinal = 2)
|
||||
private int age;
|
||||
@JSONField(ordinal = 3)
|
||||
private boolean gender;
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ 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.dromara.hutool.core.lang.Console;
|
||||
import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.StringReader;
|
||||
@ -65,6 +67,11 @@ public class JSONEngineTest {
|
||||
Arrays.stream(engineNames).forEach(this::assertToStringOrFromString);
|
||||
}
|
||||
|
||||
@Test
|
||||
void prettyPrintTest() {
|
||||
Arrays.stream(engineNames).forEach(this::assertPrettyPrint);
|
||||
}
|
||||
|
||||
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));
|
||||
@ -135,6 +142,41 @@ public class JSONEngineTest {
|
||||
assertEquals(testBean, testBean1);
|
||||
}
|
||||
|
||||
private void assertPrettyPrint(final String engineName){
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine(engineName);
|
||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
||||
|
||||
final TestBean testBean = new TestBean("张三", 18, true);
|
||||
String jsonString = engine.toJsonString(testBean);
|
||||
Console.log(engineName);
|
||||
if("jackson".equals(engineName)){
|
||||
jsonString = jsonString.replace(" : ", ": ");
|
||||
// 使用统一换行符
|
||||
jsonString = StrUtil.removeAll(jsonString, '\r');
|
||||
}
|
||||
if(engineName.startsWith("fastjson")){
|
||||
jsonString = jsonString.replace(":", ": ");
|
||||
jsonString = jsonString.replace("\t", " ");
|
||||
}
|
||||
|
||||
if("moshi".equals(engineName)){
|
||||
// Moshi顺序不同
|
||||
// 使用统一换行符
|
||||
assertEquals("{\n" +
|
||||
" \"age\": 18,\n" +
|
||||
" \"gender\": true,\n" +
|
||||
" \"name\": \"张三\"\n" +
|
||||
"}", jsonString);
|
||||
return;
|
||||
}
|
||||
// 使用统一换行符
|
||||
assertEquals("{\n" +
|
||||
" \"name\": \"张三\",\n" +
|
||||
" \"age\": 18,\n" +
|
||||
" \"gender\": true\n" +
|
||||
"}", jsonString);
|
||||
}
|
||||
|
||||
@Data
|
||||
private static class EmptyBean{
|
||||
|
||||
|
@ -29,7 +29,7 @@ public class JacksonTest {
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
||||
|
||||
final JSONEngineFactoryTest.TestBean testBean = new JSONEngineFactoryTest.TestBean("张三", 18, true);
|
||||
final JSONEngineTest.TestBean testBean = new JSONEngineTest.TestBean("张三", 18, true);
|
||||
String jsonString = engine.toJsonString(testBean);
|
||||
// 使用统一换行符
|
||||
jsonString = StrUtil.removeAll(jsonString, '\r');
|
||||
|
Loading…
x
Reference in New Issue
Block a user