protected void assertExpectedJSON()

in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java [103:130]


    protected void assertExpectedJSON(JsonObject expectedJson, JsonObject actualJson) throws JsonException {
        Iterator<String> keys = expectedJson.keySet().iterator();
        while (keys.hasNext()) {
            String key = keys.next();

            Object object = expectedJson.get(key);
            Object object2 = actualJson.get(key);
            if (object instanceof JsonObject) {
                assertTrue(object2 instanceof JsonObject);
                assertExpectedJSON((JsonObject) object, (JsonObject) object2);
            } else if (object instanceof JsonArray) {
                // compare the array
                assertTrue(object2 instanceof JsonArray);
                JsonArray actualArray = (JsonArray) object2;
                Set<Object> actualValuesSet = new HashSet<Object>();
                for (int i = 0; i < actualArray.size(); i++) {
                    actualValuesSet.add(actualArray.get(i));
                }

                JsonArray expectedArray = (JsonArray) object;
                for (int i = 0; i < expectedArray.size(); i++) {
                    assertTrue(actualValuesSet.contains(expectedArray.get(i)));
                }
            } else {
                assertEquals("Value of key: " + key, object, object2);
            }
        }
    }