Jelajahi Sumber

fix: StringUtils#camelize
tests

Ranides Atterwim 10 tahun lalu
induk
melakukan
ce15b5387d

+ 1 - 2
assira/src/main/java/net/ranides/assira/text/StringUtils.java

@@ -17,7 +17,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
-import java.util.StringTokenizer;
 import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -502,7 +501,7 @@ public final class StringUtils {
 		for(;i<parts.length; i++) {
 			if(!parts[i].isEmpty()) { break; }
 		}
-		result.append(parts[i].toLowerCase(locale));
+		result.append(parts[i++].toLowerCase(locale));
 		
 		for(;i<parts.length; i++) {
 			result.append(parts[i].substring(0, 1).toUpperCase(locale));

+ 83 - 0
assira/src/test/java/net/ranides/assira/text/StringUtilsTest.java

@@ -8,6 +8,7 @@ package net.ranides.assira.text;
 
 import java.util.Arrays;
 import java.util.regex.Pattern;
+import net.ranides.assira.collection.lists.NativeArrayList;
 import org.junit.Test;
 import static org.junit.Assert.*;
 
@@ -15,6 +16,7 @@ import static org.junit.Assert.*;
  *
  * @author Ranides Atterwim <ranides@gmail.com>
  */
+@SuppressWarnings("PMD.AvoidDuplicateLiterals")
 public class StringUtilsTest {
 	
 	public StringUtilsTest() {
@@ -152,4 +154,85 @@ public class StringUtilsTest {
 		assertEquals("A=num1 B=num2 C=num3", StringUtils.replace("A=#1 B=#2 C=#3", '#', "num"));
 	}
 	
+	@Test
+	public void testJoin() {
+		assertEquals("", StringUtils.join(Arrays.asList(), ","));
+		assertEquals("1", StringUtils.join(Arrays.asList("1"), ","));
+		assertEquals("1,2", StringUtils.join(Arrays.asList("1","2"), ","));
+		assertEquals("1,2,3", StringUtils.join(Arrays.asList("1","2","3"), ","));
+		assertEquals("1,2,3,4", StringUtils.join(Arrays.asList("1","2","3","4"), ","));
+		
+		assertEquals("1234", StringUtils.join(Arrays.asList("1","2","3","4"), ""));
+		assertEquals("1, 2, 3, 4", StringUtils.join(Arrays.asList("1","2","3","4"), ", "));
+	}
+	
+	@Test
+	public void testJoinFunction() {
+		assertEquals("", StringUtils.join(Arrays.asList(), ",", Integer::toHexString));
+		assertEquals("a", StringUtils.join(Arrays.asList(10), ",", Integer::toHexString));
+		assertEquals("a,b", StringUtils.join(Arrays.asList(10,11), ",", Integer::toHexString));
+		assertEquals("a,b,c", StringUtils.join(Arrays.asList(10,11,12), ",", Integer::toHexString));
+		assertEquals("a,b,c,d", StringUtils.join(Arrays.asList(10,11,12,13), ",", Integer::toHexString));
+		
+		assertEquals("abcd", StringUtils.join(Arrays.asList(10,11,12,13), "", Integer::toHexString));
+		assertEquals("a, b, c, d", StringUtils.join(Arrays.asList(10,11,12,13), ", ", Integer::toHexString));
+	}
+	
+	@Test
+	public void testJoinArray() {
+		assertEquals("", StringUtils.join(new String[]{}, ","));
+		assertEquals("1", StringUtils.join(new String[]{"1"}, ","));
+		assertEquals("1,2", StringUtils.join(new String[]{"1","2"}, ","));
+		assertEquals("1,2,3", StringUtils.join(new String[]{"1","2","3"}, ","));
+		assertEquals("1,2,3,4", StringUtils.join(new String[]{"1","2","3","4"}, ","));
+		
+		assertEquals("1234", StringUtils.join(new String[]{"1","2","3","4"}, ""));
+		assertEquals("1, 2, 3, 4", StringUtils.join(new String[]{"1","2","3","4"}, ", "));
+	}
+	
+	@Test
+	public void testJoinArrayFunction() {
+		assertEquals("", StringUtils.join(new Integer[]{}, ",", Integer::toHexString));
+		assertEquals("a", StringUtils.join(new Integer[]{10}, ",", Integer::toHexString));
+		assertEquals("a,b", StringUtils.join(new Integer[]{10,11}, ",", Integer::toHexString));
+		assertEquals("a,b,c", StringUtils.join(new Integer[]{10,11,12}, ",", Integer::toHexString));
+		assertEquals("a,b,c,d", StringUtils.join(new Integer[]{10,11,12,13}, ",", Integer::toHexString));
+		
+		assertEquals("abcd", StringUtils.join(new Integer[]{10,11,12,13}, "", Integer::toHexString));
+		assertEquals("a, b, c, d", StringUtils.join(new Integer[]{10,11,12,13}, ", ", Integer::toHexString));
+	}
+	
+	@Test
+	public void testCapitalize() {
+		assertEquals("", StringUtils.capitalize(""));
+		assertEquals("A", StringUtils.capitalize("a"));
+		assertEquals("Ąę", StringUtils.capitalize("ąę"));
+		
+		assertEquals("Hello", StringUtils.capitalize("hello"));
+		assertEquals("HeLLo", StringUtils.capitalize("heLLo"));
+		assertEquals("Hello", StringUtils.capitalize("Hello"));
+	}
+	
+	@Test
+	public void testUncapitalize() {
+		assertEquals("", StringUtils.uncapitalize(""));
+		assertEquals("a", StringUtils.uncapitalize("A"));
+		assertEquals("ąę", StringUtils.uncapitalize("Ąę"));
+		
+		assertEquals("hello", StringUtils.uncapitalize("Hello"));
+		assertEquals("hELLo", StringUtils.uncapitalize("HELLo"));
+		assertEquals("hello", StringUtils.uncapitalize("hello"));
+	}
+	
+	@Test
+	public void testCamelize() {
+		assertEquals("", StringUtils.camelize(""));
+		assertEquals("do", StringUtils.camelize("do"));
+		assertEquals("doOpen", StringUtils.camelize("do_open"));
+		assertEquals("doOpenFile", StringUtils.camelize("do_open_file"));
+		
+		assertEquals("doOpenFile", StringUtils.camelize("do_open_file_"));
+		assertEquals("doOpenFile", StringUtils.camelize("_do_open_file_"));
+	}
+	
 }