Skip to content

Commit b0f17d9

Browse files
author
chenfeng
committed
更新数组部分案例,案例修正,新增结果对比时字符串处理工具
1 parent 70d4b8d commit b0f17d9

File tree

4 files changed

+373
-209
lines changed

4 files changed

+373
-209
lines changed

json-diff-test/src/main/java/me/codeleep/jsondiff/test/MultAllArrayTest.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package me.codeleep.jsondiff.test;
22

33
import com.alibaba.fastjson2.JSON;
4+
import com.alibaba.fastjson2.JSONWriter;
45
import me.codeleep.jsondiff.DefaultJsonDifference;
56
import me.codeleep.jsondiff.common.model.JsonCompareResult;
67
import me.codeleep.jsondiff.test.model.MetaData;
78
import me.codeleep.jsondiff.test.dataFactory.ArrayDataFactory;
9+
import me.codeleep.jsondiff.test.utils.FormatContent;
810
import org.slf4j.Logger;
911
import org.slf4j.LoggerFactory;
1012
import org.testng.Assert;
@@ -16,33 +18,30 @@
1618
*/
1719
public class MultAllArrayTest {
1820
private static final Logger logger = LoggerFactory.getLogger(MultAllArrayTest.class);
21+
private final DefaultJsonDifference defaultJsonDifference = new DefaultJsonDifference();
1922
@Test(dataProvider = "right", dataProviderClass = ArrayDataFactory.class)
2023
public void noOptionRightTest(MetaData metaData) {
21-
DefaultJsonDifference defaultJsonDifference = new DefaultJsonDifference();
2224
logger.info(metaData.getCaseName());
2325
logger.debug("\n"+metaData.getExpect().toString()+"\n"+metaData.getActual().toString());
2426
JsonCompareResult jsonCompareResult = defaultJsonDifference
2527
.detectDiff(JSON.toJSONString(metaData.getExpect()) , JSON.toJSONString(metaData.getActual()));
2628
if (metaData.getRet() != null)
27-
{ Assert.assertEquals( JSON.toJSONString(jsonCompareResult),JSON.toJSONString(metaData.getRet()));}
29+
{ Assert.assertEquals(FormatContent.formatComparisonContent(jsonCompareResult),FormatContent.formatComparisonContent(metaData.getRet().toString()));}
2830
else
29-
{ Assert.assertEquals( JSON.toJSONString(jsonCompareResult),"{\"match\":true}");}
31+
{ Assert.assertEquals( FormatContent.formatComparisonContent(jsonCompareResult),FormatContent.formatComparisonContent("{\"match\":true}"));}
3032
}
3133

3234
@Test(dataProvider = "err", dataProviderClass = ArrayDataFactory.class)
3335
public void noOptionErrTest(MetaData metaData) {
34-
DefaultJsonDifference defaultJsonDifference = new DefaultJsonDifference();
3536
logger.info(metaData.getCaseName());
3637
logger.debug("\n"+metaData.getExpect().toString()+"\n"+metaData.getActual().toString()+"\n"+metaData.getOption());
3738
JsonCompareResult jsonCompareResult = defaultJsonDifference
3839
.detectDiff(JSON.toJSONString(metaData.getExpect()) , JSON.toJSONString(metaData.getActual()));
39-
Assert.assertEquals(JSON.toJSONString(jsonCompareResult),JSON.toJSONString(metaData.getRet()));
40-
40+
Assert.assertEquals(FormatContent.formatComparisonContent(jsonCompareResult),FormatContent.formatComparisonContent(metaData.getRet().toString()));
4141
}
4242

4343
@Test(dataProvider = "optionRight", dataProviderClass = ArrayDataFactory.class)
4444
public void optionRight(MetaData metaData) {
45-
DefaultJsonDifference defaultJsonDifference = new DefaultJsonDifference();
4645
logger.info(metaData.getCaseName());
4746
logger.debug("\n"+metaData.getExpect().toString()+"\n"+metaData.getActual().toString()+"\n");
4847
JsonCompareResult jsonCompareResult = defaultJsonDifference
@@ -58,12 +57,11 @@ public void optionRight(MetaData metaData) {
5857

5958
@Test(dataProvider = "optionErr", dataProviderClass = ArrayDataFactory.class)
6059
public void optionErr(MetaData metaData) {
61-
DefaultJsonDifference defaultJsonDifference = new DefaultJsonDifference();
6260
logger.info(metaData.getCaseName());
6361
logger.debug("\n"+metaData.getExpect().toString()+"\n"+metaData.getActual().toString()+"\n");
6462
JsonCompareResult jsonCompareResult = defaultJsonDifference
6563
.option(metaData.getOption())
6664
.detectDiff(JSON.toJSONString(metaData.getExpect()) , JSON.toJSONString(metaData.getActual()));
67-
Assert.assertEquals(JSON.toJSONString(jsonCompareResult),JSON.toJSONString(metaData.getRet()));
65+
Assert.assertEquals(JSON.toJSONString(jsonCompareResult, JSONWriter.Feature.PrettyFormat),JSON.toJSONString(metaData.getRet(), JSONWriter.Feature.PrettyFormat));
6866
}
6967
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package me.codeleep.jsondiff.test.utils;
2+
3+
import com.alibaba.fastjson2.JSON;
4+
import com.alibaba.fastjson2.JSONObject;
5+
import com.alibaba.fastjson2.JSONWriter;
6+
import me.codeleep.jsondiff.common.model.JsonCompareResult;
7+
8+
import java.util.regex.Matcher;
9+
import java.util.regex.Pattern;
10+
11+
/**
12+
* @author: chenfeng
13+
* @createTime: 2024/4/14 10:55
14+
* @description: 格式化内容
15+
*/
16+
public class FormatContent {
17+
private static final String REGEX = "[a-zA-Z]+(\\.[a-zA-Z]+)+";
18+
private static final Pattern pattern = Pattern.compile(REGEX);
19+
20+
/**
21+
* 将返回的JsonCompareResult类转化为格式化的JSON字符串 并将其中的关于类型的部分去除 例如java.math.BigDecimal
22+
* @param jsonCompareContent JsonCompareResult 执行对比后返回的内容
23+
* @return String 格式化后的JSON字符串
24+
*/
25+
public static String formatComparisonContent(JsonCompareResult jsonCompareContent) {
26+
return formatComparisonContent(JSON.toJSONString(jsonCompareContent));
27+
}
28+
/**
29+
* 将String字符串转化为格式化的JSON字符串 并将其中的关于类型的部分去除 例如java.math.BigDecimal
30+
* @param content String 需要格式化的字符串内容
31+
* @return String 格式化后的JSON字符串
32+
*/
33+
public static String formatComparisonContent(String content) {
34+
Matcher matcher = pattern.matcher(content);
35+
JSONObject jsonObject = JSON.parseObject(matcher.replaceAll(""));
36+
return JSON.toJSONString(jsonObject, JSONWriter.Feature.PrettyFormat);
37+
}
38+
}

0 commit comments

Comments
 (0)