@Override public ParseConfig call() { synchronized (currentConfigMutex) { if (currentConfig == null) { ParseConfig config = getFromDisk(); currentConfig = (config != null) ? config : new ParseConfig(); } } return currentConfig; } }, ParseExecutors.io());
@SuppressWarnings("unchecked") /* package */ static ParseConfig decode(JSONObject json, ParseDecoder decoder) { Map<String, Object> decodedObject = (Map<String, Object>) decoder.decode(json); Map<String, Object> decodedParams = (Map<String, Object>) decodedObject.get("params"); if (decodedParams == null) { throw new RuntimeException("Object did not contain the 'params' key."); } return new ParseConfig(decodedParams); }
@Test public void testDefaultConstructor() { ParseConfig config = new ParseConfig(); assertEquals(0, config.params.size()); }
@Test public void testGetDateKeyNotExist() { final Date date = new Date(); date.setTime(10); Date dateAgain = new Date(); dateAgain.setTime(10); final Map<String, Object> params = new HashMap<>(); params.put("key", date); ParseConfig config = new ParseConfig(params); assertNull(config.getDate("wrongKey")); assertSame(dateAgain, config.getDate("wrongKey", dateAgain)); }
@Test public void testGetSyncSuccess() throws Exception { final Map<String, Object> params = new HashMap<>(); params.put("string", "value"); ParseConfig config = new ParseConfig(params); ParseConfigController controller = mockParseConfigControllerWithResponse(config); ParseCorePlugins.getInstance().registerConfigController(controller); ParseConfig configAgain = ParseConfig.get(); verify(controller, times(1)).getAsync(anyString()); assertEquals(1, configAgain.params.size()); assertEquals("value", configAgain.params.get("string")); }
@Test public void testGetNumberKeyExistValueNotNumber() { Number number = 2; final Map<String, Object> params = new HashMap<>(); params.put("key", new ArrayList<String>()); ParseConfig config = new ParseConfig(params); assertNull(config.getNumber("key")); assertSame(number, config.getNumber("key", number)); }
@Test public void testGetLongKeyExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", (long) 998); ParseConfig config = new ParseConfig(params); assertEquals(config.getLong("key"), (long) 998); assertEquals((long) 998, config.getLong("key", (long) 100)); }
@Test public void testGetStringKeyNotExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", "value"); ParseConfig config = new ParseConfig(params); assertNull(config.getString("wrongKey")); assertEquals("haha", config.getString("wrongKey", "haha")); }
@Test public void testGetBooleanKeyExistValueNotBoolean() { final Map<String, Object> params = new HashMap<>(); params.put("key", 1); ParseConfig config = new ParseConfig(params); assertFalse(config.getBoolean("key")); assertFalse(config.getBoolean("key", false)); }
@Test public void testGetKeyExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", "value"); ParseConfig config = new ParseConfig(params); assertEquals(config.get("key"), "value"); assertEquals("value", config.get("key", "haha")); }
@Test public void testGetNumberKeyExist() { final Number number = 1; Number numberAgain = 2; final Map<String, Object> params = new HashMap<>(); params.put("key", number); ParseConfig config = new ParseConfig(params); assertEquals(number, config.getNumber("key")); assertEquals(number, config.getNumber("key", numberAgain)); }
@Test public void testGetLongKeyNotExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", (long) 998); ParseConfig config = new ParseConfig(params); assertEquals(config.getLong("wrongKey"), (long) 0); assertEquals((long) 100, config.getLong("wrongKey", (long) 100)); }
@Test public void testGetKeyNotExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", "value"); ParseConfig config = new ParseConfig(params); assertNull(config.get("wrongKey")); assertEquals("haha", config.get("wrongKey", "haha")); }
@Test public void testGetNumberKeyNotExist() { final Number number = 1; Number numberAgain = 2; final Map<String, Object> params = new HashMap<>(); params.put("key", number); ParseConfig config = new ParseConfig(params); assertNull(config.getNumber("wrongKey")); assertSame(numberAgain, config.getNumber("wrongKey", numberAgain)); }
@Test public void testGetDoubleKeyNotExist() { final Map<String, Object> params = new HashMap<>(); params.put("key", 998.1); ParseConfig config = new ParseConfig(params); assertEquals(config.getDouble("wrongKey"), 0.0, 0.0001); assertEquals(100.1, config.getDouble("wrongKey", 100.1), 0.0001); }
@Test public void testGetParseGeoPointKeyNotExist() { final ParseGeoPoint geoPoint = new ParseGeoPoint(44.484, 26.029); ParseGeoPoint geoPointAgain = new ParseGeoPoint(45.484, 27.029); final Map<String, Object> params = new HashMap<>(); params.put("key", geoPoint); ParseConfig config = new ParseConfig(params); assertNull(config.getParseGeoPoint("wrongKey")); assertSame(geoPointAgain, config.getParseGeoPoint("wrongKey", geoPointAgain)); }
@Test public void testGetStringKeyExistValueNull() { final Map<String, Object> params = new HashMap<>(); params.put("key", JSONObject.NULL); params.put("keyAgain", null); ParseConfig config = new ParseConfig(params); assertNull(config.getString("key")); assertNull(config.getString("key", "haha")); assertNull(config.getString("keyAgain")); assertNull(config.getString("keyAgain", "haha")); }
@Test public void testGetKeyExistValueNull() { final Map<String, Object> params = new HashMap<>(); params.put("key", JSONObject.NULL); params.put("keyAgain", null); ParseConfig config = new ParseConfig(params); assertNull(config.get("key")); assertNull(config.get("key", "haha")); assertNull(config.get("keyAgain")); assertNull(config.get("keyAgain", "haha")); }
@Test public void testGetNumberKeyExistValueNull() { Number number = 2; final Map<String, Object> params = new HashMap<>(); params.put("key", JSONObject.NULL); params.put("keyAgain", null); ParseConfig config = new ParseConfig(params); assertNull(config.getNumber("key")); assertNull(config.getNumber("key", number)); assertNull(config.getNumber("keyAgain")); assertNull(config.getNumber("keyAgain", number)); }
@Test public void testGetParseGeoPointKeyExistValueNull() { ParseGeoPoint geoPoint = new ParseGeoPoint(45.484, 27.029); final Map<String, Object> params = new HashMap<>(); params.put("key", JSONObject.NULL); params.put("keyAgain", null); ParseConfig config = new ParseConfig(params); assertNull(config.getParseGeoPoint("key")); assertNull(config.getParseGeoPoint("key", geoPoint)); assertNull(config.getParseGeoPoint("keyAgain")); assertNull(config.getParseGeoPoint("keyAgain", geoPoint)); }