/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.elasticsearch.testutil;
import org.hibernate.search.exception.AssertionFailure;
import org.json.JSONException;
import org.skyscreamer.jsonassert.JSONCompare;
import org.skyscreamer.jsonassert.JSONCompareMode;
import org.skyscreamer.jsonassert.JSONCompareResult;
/**
* Helper functionality around JSON documents.
*
* @author Gunnar Morling
*/
public class JsonHelper {
private JsonHelper() {
}
public static void assertJsonEquals(String expectedJson, String actualJson) {
assertJsonEquals( expectedJson, actualJson, JSONCompareMode.NON_EXTENSIBLE );
}
public static void assertJsonEqualsIgnoringUnknownFields(String expectedJson, String actualJson) {
assertJsonEquals( expectedJson, actualJson, JSONCompareMode.LENIENT );
}
private static void assertJsonEquals(String expectedJson, String actualJson, JSONCompareMode mode) {
try {
JSONCompareResult result = JSONCompare.compareJSON( expectedJson, actualJson, mode );
if ( result.failed() ) {
throw new AssertionFailure( result.getMessage() + "; Actual: " + actualJson );
}
}
catch (JSONException e) {
throw new RuntimeException( e );
}
}
}