Skip to content

Commit ae1f36f

Browse files
committed
update SerializedJsonComparisonUtils to new format
1 parent 023c704 commit ae1f36f

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

core/src/test/java/org/lionweb/lioncore/java/serialization/SerializedJsonComparisonUtils.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ private SerializedJsonComparisonUtils() {
1919
}
2020

2121
static void assertEquivalentLionWebJson(JsonObject expected, JsonObject actual) {
22-
Set<String> keys = new HashSet<>(Arrays.asList("serializationFormatVersion", "nodes"));
22+
Set<String> keys = new HashSet<>(Arrays.asList("serializationFormatVersion", "nodes", "metamodels"));
2323
if (!expected.keySet().equals(keys)) {
2424
throw new RuntimeException("The expected object has irregular keys: " + expected.keySet());
2525
}
@@ -85,17 +85,26 @@ private static void assertEquivalentNodes(JsonObject expected, JsonObject actual
8585
} else if (key.equals("id")) {
8686
assertEquals("(" + context + ") different id", expected.get("id"), actual.get("id"));
8787
} else if (key.equals("references")) {
88-
assertEquivalentObjects(expected.getAsJsonObject("references"), actual.getAsJsonObject("references"), "References of " + context);
88+
assertEquivalentArrays(expected.getAsJsonArray("references"), actual.getAsJsonArray("references"), "References of " + context);
8989
} else if (key.equals("children")) {
90-
assertEquivalentObjects(expected.getAsJsonObject("children"), actual.getAsJsonObject("children"), "Children of " + context);
90+
assertEquivalentArrays(expected.getAsJsonArray("children"), actual.getAsJsonArray("children"), "Children of " + context);
9191
} else if (key.equals("properties")) {
92-
assertEquivalentObjects(expected.getAsJsonObject("properties"), actual.getAsJsonObject("properties"), "Properties of " + context);
92+
assertEquivalentArrays(expected.getAsJsonArray("properties"), actual.getAsJsonArray("properties"), "Properties of " + context);
9393
} else {
9494
throw new AssertionError("(" + context + ") unexpected top-level key found: " + key);
9595
}
9696
}
9797
}
9898

99+
private static void assertEquivalentArrays(JsonArray expected, JsonArray actual, String context) {
100+
if (expected.size() != actual.size()) {
101+
throw new AssertionError("(" + context + ") Arrays with different sizes: expected=" + expected.size()+ " and actual=" + actual.size());
102+
}
103+
for (int i=0;i<expected.size();i++) {
104+
assertEquivalentObjects(expected.get(i).getAsJsonObject(), actual.get(i).getAsJsonObject(), context + " element " + i);
105+
}
106+
}
107+
99108
private static void assertEquivalentObjects(JsonObject expected, JsonObject actual, String context) {
100109
Set<String> actualMeaningfulKeys = actual.keySet().stream().filter(k ->
101110
!actual.get(k).equals(new JsonObject())

0 commit comments

Comments
 (0)