Author: pmouawad Date: Wed Nov 22 07:27:11 2017 New Revision: 1816006 URL: http://svn.apache.org/viewvc?rev=1816006&view=rev Log: Bug 61759 __changeCase</code> function to change different cases of a string Take into account some remarks from Felix: - Change enum names - Make CamelCase work as described in wikipedia - rename cz Bugzilla Id: 61759
Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/ChangeCase.java jmeter/trunk/test/src/org/apache/jmeter/functions/TestChangeCase.java jmeter/trunk/xdocs/usermanual/functions.xml Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/ChangeCase.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/ChangeCase.java?rev=1816006&r1=1816005&r2=1816006&view=diff ============================================================================== --- jmeter/trunk/src/functions/org/apache/jmeter/functions/ChangeCase.java (original) +++ jmeter/trunk/src/functions/org/apache/jmeter/functions/ChangeCase.java Wed Nov 22 07:27:11 2017 @@ -96,10 +96,10 @@ public class ChangeCase extends Abstract case CAPITALIZE: targetString = StringUtils.capitalize(originalString); break; - case CAMEL_CASE: + case LOWER_CAMEL_CASE: targetString = camel(originalString, false); break; - case CAMEL_CASE_FIRST_LOWER: + case UPPER_CAMEL_CASE: targetString = camel(originalString, true); break; default: @@ -131,27 +131,16 @@ public class ChangeCase extends Abstract StringBuilder builder = new StringBuilder(str.length()); String[] tokens = NOT_ALPHANUMERIC_REGEX.split(str); for (int i = 0; i < tokens.length; i++) { + String lowerCased = StringUtils.lowerCase(tokens[i]); if(i == 0) { - builder.append(isFirstCapitalized ? decapitalize(tokens[0]): - StringUtils.capitalize(tokens[i])); + builder.append(isFirstCapitalized ? StringUtils.capitalize(lowerCased): + lowerCased); } else { - builder.append(StringUtils.capitalize(tokens[i])); + builder.append(StringUtils.capitalize(lowerCased)); } } return builder.toString(); } - - /** - * @param string to decapitalize - */ - private static String decapitalize(String string) { - if (string == null || string.length() == 0) { - return string; - } - char[] c = string.toCharArray(); - c[0] = Character.toLowerCase(c[0]); - return new String(c); - } /** * ChangeCase Modes @@ -160,8 +149,8 @@ public class ChangeCase extends Abstract * */ public enum ChangeCaseMode { - UPPER("UPPER"), LOWER("LOWER"), CAPITALIZE("CAPITALIZE"), CAMEL_CASE("CAMEL_CASE"), CAMEL_CASE_FIRST_LOWER( - "CAMEL_CASE_FIRST_LOWER"); + UPPER("UPPER"), LOWER("LOWER"), CAPITALIZE("CAPITALIZE"), + UPPER_CAMEL_CASE("UPPER_CAMEL_CASE"), LOWER_CAMEL_CASE("LOWER_CAMEL_CASE"); private String mode; private ChangeCaseMode(String mode) { @@ -180,9 +169,9 @@ public class ChangeCase extends Abstract */ public static ChangeCaseMode typeOf(String mode) { EnumSet<ChangeCaseMode> allOf = EnumSet.allOf(ChangeCaseMode.class); - for (ChangeCaseMode zs : allOf) { - if (zs.getName().equals(mode)) { - return zs; + for (ChangeCaseMode csm : allOf) { + if (csm.getName().equals(mode)) { + return csm; } } return null; Modified: jmeter/trunk/test/src/org/apache/jmeter/functions/TestChangeCase.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/functions/TestChangeCase.java?rev=1816006&r1=1816005&r2=1816006&view=diff ============================================================================== --- jmeter/trunk/test/src/org/apache/jmeter/functions/TestChangeCase.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/functions/TestChangeCase.java Wed Nov 22 07:27:11 2017 @@ -96,10 +96,10 @@ public class TestChangeCase extends JMet @Test public void testChangeCaseCamelCase() throws Exception { params.add(new CompoundVariable("ab-CD eF")); - params.add(new CompoundVariable("CAMEL_CASE")); + params.add(new CompoundVariable("UPPER_CAMEL_CASE")); changeCase.setParameters(params); String returnValue = changeCase.execute(result, null); - assertEquals("AbCDEF", returnValue); + assertEquals("AbCdEf", returnValue); } @Test @@ -114,23 +114,23 @@ public class TestChangeCase extends JMet @Test public void testChangeCaseCamelCaseFirstLower() throws Exception { params.add(new CompoundVariable("ab-CD eF")); - params.add(new CompoundVariable("camel_CASE_FIRST_LOWER")); + params.add(new CompoundVariable("LOWER_CAMEL_CASE")); changeCase.setParameters(params); String returnValue = changeCase.execute(result, null); - assertEquals("abCDEF", returnValue); + assertEquals("abCdEf", returnValue); } @Test public void testChangeCaseCamelCaseFirstLowerWithFirstUpperCaseChar() throws Exception { params.add(new CompoundVariable("Ab-CD eF")); - params.add(new CompoundVariable("camel_CASE_FIRST_LOWER")); + params.add(new CompoundVariable("lower_CAMEL_CASE")); changeCase.setParameters(params); String returnValue = changeCase.execute(result, null); - assertEquals("abCDEF", returnValue); + assertEquals("abCdEf", returnValue); params.clear(); params.add(new CompoundVariable(" zadad")); - params.add(new CompoundVariable("camel_CASE_FIRST_LOWER")); + params.add(new CompoundVariable("lower_CAMEL_CASE")); changeCase.setParameters(params); returnValue = changeCase.execute(result, null); assertEquals("Zadad", returnValue); Modified: jmeter/trunk/xdocs/usermanual/functions.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/functions.xml?rev=1816006&r1=1816005&r2=1816006&view=diff ============================================================================== --- jmeter/trunk/xdocs/usermanual/functions.xml (original) +++ jmeter/trunk/xdocs/usermanual/functions.xml Wed Nov 22 07:27:11 2017 @@ -1652,8 +1652,8 @@ becomes: <li><code>UPPER</code> result as AB-CD EF</li> <li><code>LOWER</code> result as ab-cd ed</li> <li><code>CAPITALIZE</code> result as Ab-CD eF</li> - <li><code>CAMEL_CASE</code>result as AbCDEF</li> - <li><code>CAMEL_CASE_FIRST_LOWER</code>result as abCDEF</li> + <li><code>UPPER_CAMEL_CASE</code>result as AbCdEf</li> + <li><code>LOWER_CAMEL_CASE</code>result as abCdEf</li> </ul> <note>mode is case insensitive</note> </property>