ConversionHelper { public static String decapitalize(String param, boolean allCapsStringToLowercase) { if(param == null || param.isEmpty()) { return param; } if(allCapsStringToLowercase && isOnlyUpperCase(param)) { return param.toLowerCase(); } final char c = Character.toLowerCase(param.charAt(0)); if(param.length() == 1) { return "" + c; } return c + param.substring(1); }  static String firstNonNull(final String ... strings); static int count(final String string, final String substring); static String decapitalize(String param, boolean allCapsStringToLowercase); static String decapitalize(final String param); static boolean isOnlyUpperCase(final String param); static final String getString(final String str, final String defaultValue); static final long getLong(final String strToParse, final long defaultValue); static final int getInt(final String strToParse, final int defaultValue); static final double getDouble(final String strToParse, final double defaultValue); static final boolean getBoolean(final String strToParse, final boolean defaultValue); static final boolean getOnOffBoolean(final String strToParse, final boolean defaultValue); static final List<String> getStringList(final List<String> idList); static final List<Integer> getIntList(final List<String> idList); static Set<T> asSet(final T... array);  }
@Test public void testDecapitalize() { assertEquals("'M' should become 'm'", "m", ConversionHelper.decapitalize("M")); assertEquals("'HTTP' should become 'http'", "http", ConversionHelper.decapitalize("HTTP")); assertEquals("'HTTP' should become 'hTTP' with second parameter false", "hTTP", ConversionHelper.decapitalize("HTTP", false)); assertEquals("'MyAssertion' should become 'myAssertion'", "myAssertion", ConversionHelper.decapitalize("MyAssertion")); assertEquals("Empty string should stay empty", "", ConversionHelper.decapitalize("")); assertEquals("<null> should stay <null>", null, ConversionHelper.decapitalize(null)); }