Skip to content

Commit ddc240e

Browse files
author
Egor Martsynkovsky
committed
Add method to compare two json string
PDWEB-264
1 parent b8f1766 commit ddc240e

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

commons/src/main/java/com/itextpdf/commons/utils/JsonUtil.java

+20
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ This file is part of the iText (R) project.
3232
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
3333
import com.fasterxml.jackson.databind.DeserializationFeature;
3434
import com.fasterxml.jackson.databind.JavaType;
35+
import com.fasterxml.jackson.databind.JsonNode;
3536
import com.fasterxml.jackson.databind.ObjectMapper;
3637
import com.fasterxml.jackson.databind.ObjectWriter;
3738
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -51,6 +52,25 @@ private JsonUtil() {
5152
// empty constructor
5253
}
5354

55+
/**
56+
* Compares two json strings without considering the order of the elements.
57+
*
58+
* @param expectedString expected json string
59+
* @param toCompare string for comparison
60+
*
61+
* @return true if two json string are equals, false otherwise
62+
*
63+
* @throws IOException if an I/O error occurs
64+
*/
65+
public static boolean areTwoJsonObjectEquals(String expectedString, String toCompare) throws IOException {
66+
final ObjectMapper mapper = new ObjectMapper();
67+
68+
JsonNode expectedObject = mapper.readTree(expectedString);
69+
JsonNode actualObject = mapper.readTree(toCompare);
70+
71+
return actualObject.equals(expectedObject);
72+
}
73+
5474
/**
5575
* Serializes passed object to provided JSON output stream.
5676
*

commons/src/test/java/com/itextpdf/commons/utils/JsonUtilTest.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public void serializeInstanceWithEnumStringTest() throws IOException {
7272
String resultString = JsonUtil.serializeToString(classWithEnum);
7373

7474
String cmpString = getJsonStringFromFile(cmp);
75-
Assert.assertEquals(cmpString, resultString);
75+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(cmpString, resultString));
7676
}
7777

7878
@Test
@@ -97,7 +97,7 @@ public void serializeToMinimalInstanceWithEnumStringTest() throws IOException {
9797
String resultString = JsonUtil.serializeToMinimalString(classWithEnum);
9898

9999
String compareString = getJsonStringFromFile(cmp);
100-
Assert.assertEquals(compareString, resultString);
100+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
101101
}
102102

103103
@Test
@@ -122,7 +122,7 @@ public void serializeStringWithLineBreakStringTest() throws IOException {
122122
String resultString = JsonUtil.serializeToString(stringsForSerialization);
123123

124124
String cmpString = getJsonStringFromFile(cmp);
125-
Assert.assertEquals(cmpString, resultString);
125+
Assert.assertEquals(cmpString,resultString);
126126
}
127127

128128
@Test
@@ -146,7 +146,7 @@ public void serializeToMinimalStringWithLineBreakStringTest() throws IOException
146146
String resultString = JsonUtil.serializeToMinimalString(stringsForSerialization);
147147

148148
String cmpString = getJsonStringFromFile(cmp);
149-
Assert.assertEquals(cmpString, resultString);
149+
Assert.assertEquals(cmpString,resultString);
150150
}
151151

152152
@Test
@@ -170,7 +170,7 @@ public void serializeComplexStructureStringTest() throws IOException {
170170
String resultString = JsonUtil.serializeToString(complexStructure);
171171

172172
String compareString = getJsonStringFromFile(cmp);
173-
Assert.assertEquals(compareString, resultString);
173+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
174174
}
175175

176176
@Test
@@ -195,7 +195,7 @@ public void serializeToMinimalComplexStructureStringTest() throws IOException {
195195
String resultString = JsonUtil.serializeToMinimalString(complexStructure);
196196

197197
String compareString = getJsonStringFromFile(cmp);
198-
Assert.assertEquals(compareString, resultString);
198+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
199199
}
200200

201201
@Test
@@ -221,7 +221,7 @@ public void serializeWithNullFieldsStringTest() throws IOException {
221221
String resultString = JsonUtil.serializeToString(complexStructure);
222222

223223
String compareString = getJsonStringFromFile(cmp);
224-
Assert.assertEquals(compareString, resultString);
224+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
225225
}
226226

227227
@Test
@@ -247,7 +247,7 @@ public void serializeToMinimalWithNullFieldsStringTest() throws IOException {
247247
String resultString = JsonUtil.serializeToMinimalString(complexStructure);
248248

249249
String compareString = getJsonStringFromFile(cmp);
250-
Assert.assertEquals(compareString, resultString);
250+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
251251
}
252252

253253
@Test

0 commit comments

Comments
 (0)