### Question:
Parameter { public static boolean boolValue(String key, boolean defaultValue) { if (value(key) == null) { return defaultValue; } return intValue(key, 0) > 0 || value(key, "").equalsIgnoreCase("true"); }  static String value(String key); static String value(String key, String defaultValue); static boolean boolValue(String key, boolean defaultValue); static int intValue(String key, int defaultValue); static long longValue(String key, long defaultValue);  }### Answer:
@Test public void testBoolValue() { System.setProperty("bool1", "1"); System.setProperty("bool2", "0"); System.setProperty("bool3", "true"); assertEquals(true, Parameter.boolValue("bool1", true)); assertEquals(true, Parameter.boolValue("bool1", false)); assertEquals(false, Parameter.boolValue("bool2", true)); assertEquals(false, Parameter.boolValue("bool2", false)); assertEquals(true, Parameter.boolValue("bool3", true)); assertEquals(true, Parameter.boolValue("bool3", false)); assertEquals(true, Parameter.boolValue("baz", true)); assertEquals(false, Parameter.boolValue("baz", false)); boolean success = false; try { Parameter.boolValue("", true); } catch (IllegalArgumentException ex) { success = true; } assertTrue(success); success = false; try { Parameter.boolValue(null, true); } catch (NullPointerException ex) { success = true; } assertTrue(success); }