mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +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");
|
final JSONEngine engine = JSONEngineFactory.createEngine("fastjson");
|
||||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
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);
|
String jsonString = engine.toJsonString(testBean);
|
||||||
// 使用统一换行符
|
// 使用统一换行符
|
||||||
jsonString = StrUtil.removeAll(jsonString, '\r');
|
jsonString = StrUtil.removeAll(jsonString, '\r');
|
||||||
|
@ -34,7 +34,7 @@ public class GsonTest {
|
|||||||
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
||||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
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);
|
final String jsonString = engine.toJsonString(testBean);
|
||||||
// 使用统一换行符
|
// 使用统一换行符
|
||||||
Assertions.assertEquals("{\n" +
|
Assertions.assertEquals("{\n" +
|
||||||
|
@ -25,7 +25,7 @@ public class HutoolJSONTest {
|
|||||||
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
||||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
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);
|
final String jsonString = engine.toJsonString(testBean);
|
||||||
Assertions.assertEquals("{\n" +
|
Assertions.assertEquals("{\n" +
|
||||||
" \"name\": \"张三\",\n" +
|
" \"name\": \"张三\",\n" +
|
||||||
|
@ -16,17 +16,11 @@
|
|||||||
|
|
||||||
package org.dromara.hutool.json.engine;
|
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.fastjson.FastJSON2Engine;
|
||||||
import org.dromara.hutool.json.engine.gson.GsonEngine;
|
import org.dromara.hutool.json.engine.gson.GsonEngine;
|
||||||
import org.dromara.hutool.json.engine.jackson.JacksonEngine;
|
import org.dromara.hutool.json.engine.jackson.JacksonEngine;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.StringReader;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
public class JSONEngineFactoryTest {
|
public class JSONEngineFactoryTest {
|
||||||
@ -40,84 +34,23 @@ public class JSONEngineFactoryTest {
|
|||||||
void jacksonTest() {
|
void jacksonTest() {
|
||||||
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
||||||
assertEquals(JacksonEngine.class, engine.getClass());
|
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
|
@Test
|
||||||
void GsonTest() {
|
void GsonTest() {
|
||||||
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
final JSONEngine engine = JSONEngineFactory.createEngine("gson");
|
||||||
assertEquals(GsonEngine.class, engine.getClass());
|
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
|
@Test
|
||||||
void fastJSON2Test() {
|
void fastJSON2Test() {
|
||||||
final JSONEngine engine = JSONEngineFactory.createEngine("fastjson");
|
final JSONEngine engine = JSONEngineFactory.createEngine("fastjson");
|
||||||
assertEquals(FastJSON2Engine.class, engine.getClass());
|
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
|
@Test
|
||||||
void HutoolJSONTest() {
|
void HutoolJSONTest() {
|
||||||
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
final JSONEngine engine = JSONEngineFactory.createEngine("hutoolJSON");
|
||||||
assertEquals(HutoolJSONEngine.class, engine.getClass());
|
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.DateTime;
|
||||||
import org.dromara.hutool.core.date.DateUtil;
|
import org.dromara.hutool.core.date.DateUtil;
|
||||||
import org.dromara.hutool.core.date.TimeUtil;
|
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 org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
@ -65,6 +67,11 @@ public class JSONEngineTest {
|
|||||||
Arrays.stream(engineNames).forEach(this::assertToStringOrFromString);
|
Arrays.stream(engineNames).forEach(this::assertToStringOrFromString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void prettyPrintTest() {
|
||||||
|
Arrays.stream(engineNames).forEach(this::assertPrettyPrint);
|
||||||
|
}
|
||||||
|
|
||||||
private void assertWriteDateFormat(final String engineName) {
|
private void assertWriteDateFormat(final String engineName) {
|
||||||
final DateTime date = DateUtil.parse("2024-01-01 01:12:21");
|
final DateTime date = DateUtil.parse("2024-01-01 01:12:21");
|
||||||
final BeanWithDate bean = new BeanWithDate(date, TimeUtil.of(date));
|
final BeanWithDate bean = new BeanWithDate(date, TimeUtil.of(date));
|
||||||
@ -135,6 +142,41 @@ public class JSONEngineTest {
|
|||||||
assertEquals(testBean, testBean1);
|
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
|
@Data
|
||||||
private static class EmptyBean{
|
private static class EmptyBean{
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public class JacksonTest {
|
|||||||
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
final JSONEngine engine = JSONEngineFactory.createEngine("jackson");
|
||||||
engine.init(JSONEngineConfig.of().setPrettyPrint(true));
|
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);
|
String jsonString = engine.toJsonString(testBean);
|
||||||
// 使用统一换行符
|
// 使用统一换行符
|
||||||
jsonString = StrUtil.removeAll(jsonString, '\r');
|
jsonString = StrUtil.removeAll(jsonString, '\r');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user