SystemPropertyUtil { public static boolean getBoolean(String key, boolean def) { String value = get(key); if (value == null) { return def; } value = value.trim().toLowerCase(); if (value.isEmpty()) { return def; } if ("true".equals(value) || "yes".equals(value) || "1".equals(value)) { return true; } if ("false".equals(value) || "no".equals(value) || "0".equals(value)) { return false; } logger.warn( "Unable to parse the boolean system property '{}':{} - using the default value: {}", key, value, def ); return def; } private  SystemPropertyUtil(); static boolean contains(String key); static String get(String key); static String get(final String key, String def); static boolean getBoolean(String key, boolean def); static int getInt(String key, int def); static long getLong(String key, long def);  }
@Test public void testGetBooleanDefaultValueWithPropertyNull() { assertTrue(SystemPropertyUtil.getBoolean("key", true)); assertFalse(SystemPropertyUtil.getBoolean("key", false)); }
@Test public void testGetBooleanDefaultValueWithEmptyString() { System.setProperty("key", ""); assertTrue(SystemPropertyUtil.getBoolean("key", true)); assertFalse(SystemPropertyUtil.getBoolean("key", false)); }
@Test public void testGetBooleanWithTrueValue() { System.setProperty("key", "true"); assertTrue(SystemPropertyUtil.getBoolean("key", false)); System.setProperty("key", "yes"); assertTrue(SystemPropertyUtil.getBoolean("key", false)); System.setProperty("key", "1"); assertTrue(SystemPropertyUtil.getBoolean("key", true)); }
@Test public void testGetBooleanWithFalseValue() { System.setProperty("key", "false"); assertFalse(SystemPropertyUtil.getBoolean("key", true)); System.setProperty("key", "no"); assertFalse(SystemPropertyUtil.getBoolean("key", false)); System.setProperty("key", "0"); assertFalse(SystemPropertyUtil.getBoolean("key", true)); }
@Test public void testGetBooleanDefaultValueWithWrongValue() { System.setProperty("key", "abc"); assertTrue(SystemPropertyUtil.getBoolean("key", true)); System.setProperty("key", "123"); assertFalse(SystemPropertyUtil.getBoolean("key", false)); }