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>


Reply via email to