View Javadoc

1   package uk.co.datumedge.hamcrest.json;
2   
3   import static org.skyscreamer.jsonassert.JSONCompare.compareJSON;
4   import static uk.co.datumedge.hamcrest.json.JSONAssertComparisonResult.resultOf;
5   
6   import org.json.JSONArray;
7   import org.json.JSONException;
8   import org.skyscreamer.jsonassert.JSONCompareMode;
9   
10  /**
11   * A {@code JSONComparator} implementation that compares {@code JSONArray}s, backed by SkyScreamer's JSONAssert library.
12   */
13  final class JSONArrayComparatorFactory implements JSONAssertComparatorFactory<JSONArray> {
14  	private static final JSONAssertComparatorFactory<JSONArray> INSTANCE = new JSONArrayComparatorFactory();
15  
16  	static JSONAssertComparatorFactory<JSONArray> jsonArrayComparison() {
17  		return INSTANCE;
18  	}
19  
20  	private JSONArrayComparatorFactory() { }
21  
22  	@Override
23  	public JSONComparator<JSONArray> comparatorWith(final JSONCompareMode compareMode) {
24  		return new JSONComparator<JSONArray>() {
25  			@Override
26  			public JSONComparisonResult compare(JSONArray expected, JSONArray actual) throws JSONException {
27  				return resultOf(compareJSON(expected, actual, compareMode));
28  			}
29  		};
30  	}
31  }