/** * Access a {@link JSONArray} value. * * @param key The key to access the value for. * @return Returns {@code null} if there is no such key or if it is not a {@link JSONArray}. */ public JSONArray getJSONArray(String key) { return getJSONArray(key, null); }
@Test public void testGetJsonArrayKeyExistValueNull() throws Exception { final JSONObject json = new JSONObject(); json.put("key", "value"); final JSONObject jsonAgain = new JSONObject(); jsonAgain.put("keyAgain", "valueAgain"); final JSONArray jsonArray = new JSONArray(); jsonArray.put(0, json); jsonArray.put(1, jsonAgain); final Map<String, Object> params = new HashMap<>(); params.put("key", null); ParseConfig config = new ParseConfig(params); assertNull(config.getJSONArray("key")); assertNull(config.getJSONArray("key", jsonArray)); assertNull(config.getJSONArray("keyAgain")); assertNull(config.getJSONArray("keyAgain", jsonArray)); }
@Test public void testGetJsonArrayKeyExist() throws Exception { final Map<String, String> map = new HashMap<>(); map.put("key", "value"); final Map<String, String> mapAgain = new HashMap<>(); mapAgain.put("keyAgain", "valueAgain"); final List<Map<String, String>> value = new ArrayList<>(); value.add(map); value.add(mapAgain); final Map<String, Object> params = new HashMap<>(); params.put("key", value); JSONArray jsonArray = new JSONArray(value); ParseConfig config = new ParseConfig(params); assertEquals(jsonArray, config.getJSONArray("key"), JSONCompareMode.NON_EXTENSIBLE); assertEquals(jsonArray, config.getJSONArray("key", new JSONArray()), JSONCompareMode.NON_EXTENSIBLE); }
@Test public void testGetJsonArrayKeyExistValueNotJsonObject() throws Exception { final JSONObject json = new JSONObject(); json.put("key", "value"); final JSONObject jsonAgain = new JSONObject(); jsonAgain.put("keyAgain", "valueAgain"); final JSONArray jsonArray = new JSONArray(); jsonArray.put(0, json); jsonArray.put(1, jsonAgain); final Map<String, Object> params = new HashMap<>(); params.put("key", 1); ParseConfig config = new ParseConfig(params); assertNull(config.getJSONArray("key")); //TODO(mengyan) ParseConfig.getJSONArray should return default jsonArray, but due to the // error in ParseConfig.getJSONArray, this returns null right now. Revise when we correct the // logic for ParseConfig.getJSONArray. assertNull(config.getJSONArray("key", jsonArray)); }
@Test public void testGetJsonArrayKeyNotExist() throws Exception { final JSONObject json = new JSONObject(); json.put("key", "value"); final JSONObject jsonAgain = new JSONObject(); jsonAgain.put("keyAgain", "valueAgain"); final JSONArray jsonArray = new JSONArray(); jsonArray.put(0, json); jsonArray.put(1, jsonAgain); final JSONArray jsonArrayAgain = new JSONArray(); jsonArray.put(0, jsonAgain); jsonArray.put(1, json); final Map<String, Object> params = new HashMap<>(); params.put("key", jsonArray); ParseConfig config = new ParseConfig(params); assertNull(config.getJSONArray("wrongKey")); //TODO(mengyan) ParseConfig.getJSONArray should return default jsonArrayAgain, but due to the // error in ParseConfig.getJSONArray, this returns null right now. Revise when we correct the // logic for ParseConfig.getJSONArray. assertNull(config.getJSONArray("wrongKey", jsonArrayAgain)); }