@@ -19,7 +19,7 @@ private SerializedJsonComparisonUtils() {
19
19
}
20
20
21
21
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" ));
23
23
if (!expected .keySet ().equals (keys )) {
24
24
throw new RuntimeException ("The expected object has irregular keys: " + expected .keySet ());
25
25
}
@@ -85,17 +85,26 @@ private static void assertEquivalentNodes(JsonObject expected, JsonObject actual
85
85
} else if (key .equals ("id" )) {
86
86
assertEquals ("(" + context + ") different id" , expected .get ("id" ), actual .get ("id" ));
87
87
} 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 );
89
89
} 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 );
91
91
} 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 );
93
93
} else {
94
94
throw new AssertionError ("(" + context + ") unexpected top-level key found: " + key );
95
95
}
96
96
}
97
97
}
98
98
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
+
99
108
private static void assertEquivalentObjects (JsonObject expected , JsonObject actual , String context ) {
100
109
Set <String > actualMeaningfulKeys = actual .keySet ().stream ().filter (k ->
101
110
!actual .get (k ).equals (new JsonObject ())
0 commit comments