|
|
@@ -0,0 +1,155 @@
|
|
|
+/*
|
|
|
+ * @author Ranides Atterwim <ranides@gmail.com>
|
|
|
+ * @copyright Ranides Atterwim
|
|
|
+ * @license WTFPL
|
|
|
+ * @url http://ranides.net/projects/assira
|
|
|
+ */
|
|
|
+package net.ranides.assira.text;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.regex.Pattern;
|
|
|
+import org.junit.Test;
|
|
|
+import static org.junit.Assert.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * @author Ranides Atterwim <ranides@gmail.com>
|
|
|
+ */
|
|
|
+public class StringUtilsTest {
|
|
|
+
|
|
|
+ public StringUtilsTest() {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testQuote() {
|
|
|
+ assertEquals("\"\"", StringUtils.quote(""));
|
|
|
+ assertEquals("\"abc\"", StringUtils.quote("abc"));
|
|
|
+ assertEquals("\"\\\"abc\\\"\"", StringUtils.quote("\"abc\""));
|
|
|
+ assertEquals("\"a\\\"bc\"", StringUtils.quote("a\"bc"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testUnquote() {
|
|
|
+ assertEquals("", StringUtils.unquote(""));
|
|
|
+ assertEquals("", StringUtils.unquote("\"\""));
|
|
|
+
|
|
|
+ assertEquals("abc", StringUtils.unquote("abc"));
|
|
|
+ assertEquals("abc", StringUtils.unquote("\"abc\""));
|
|
|
+ assertEquals("\"abc\"", StringUtils.unquote("\"\\\"abc\\\"\""));
|
|
|
+ assertEquals("a\"bc", StringUtils.unquote("\"a\\\"bc\""));
|
|
|
+ assertEquals("a\\\"bc", StringUtils.unquote("a\\\"bc"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testSplit() {
|
|
|
+ assertEquals(Arrays.asList(), StringUtils.split(""));
|
|
|
+ assertEquals(Arrays.asList("a"), StringUtils.split("a"));
|
|
|
+
|
|
|
+ assertEquals(Arrays.asList("a", "bc", "d"), StringUtils.split("a bc d"));
|
|
|
+ assertEquals(Arrays.asList("a", "bc", "d"), StringUtils.split("a bc d"));
|
|
|
+ assertEquals(Arrays.asList("a", "bc", "d"), StringUtils.split("a bc d "));
|
|
|
+
|
|
|
+ assertEquals(Arrays.asList("a", "bc q", "d"), StringUtils.split("a \"bc q\" d "));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testCompile() {
|
|
|
+ assertEquals("Hello \\ ' \" \r \n \t \b \f \033 \033[ \066 world", StringUtils.compile("Hello \\\\ ' \" \\r \\n \\t \\b \\f \\e \\^ \\066 world"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRemove() {
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Heltumlo wortumld", "tum"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Heltumlo wortumldtum", "tum"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("tumHeltumlo wortumldtum", "tum"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Helretlo wretorld", "ret"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Helretlo wretorldret", "ret"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("retHelretlo wretorldret", "ret"));
|
|
|
+
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Helqlo wqorqld", "q"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("qHelqlo wqorqld", "q"));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Hello world", ""));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Hello world", "tem"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRemove_char() {
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Helqlo wqorqld", 'q'));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("Helqlo wqorqldq", 'q'));
|
|
|
+ assertEquals("Hello world", StringUtils.remove("qHelqlo wqorqld", 'q'));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRemovePrefix() {
|
|
|
+ assertEquals("Hello world", StringUtils.removePrefix("QeHello world", "Qe"));
|
|
|
+ assertEquals("Hello world", StringUtils.removePrefix("HeHello world", "He"));
|
|
|
+ assertEquals("Hello world", StringUtils.removePrefix("Hello world", "Ha"));
|
|
|
+
|
|
|
+ assertEquals("", StringUtils.removePrefix("Ha", "Ha"));
|
|
|
+ assertEquals("", StringUtils.removePrefix("", "Ha"));
|
|
|
+ assertEquals("Ha", StringUtils.removePrefix("Ha", "Hat"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRemoveSuffix() {
|
|
|
+ assertEquals("Hello world", StringUtils.removeSuffix("Hello worldQe", "Qe"));
|
|
|
+ assertEquals("Hello world", StringUtils.removeSuffix("Hello worldld", "ld"));
|
|
|
+ assertEquals("Hello world", StringUtils.removeSuffix("Hello world", "ad"));
|
|
|
+
|
|
|
+ assertEquals("", StringUtils.removeSuffix("Ha", "Ha"));
|
|
|
+ assertEquals("", StringUtils.removeSuffix("", "Ha"));
|
|
|
+ assertEquals("Ha", StringUtils.removeSuffix("Ha", "Hat"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testCondense() {
|
|
|
+ assertEquals(" ", StringUtils.condense(" ", ' '));
|
|
|
+ assertEquals(" ", StringUtils.condense(" ", ' '));
|
|
|
+ assertEquals("", StringUtils.condense("", ' '));
|
|
|
+
|
|
|
+ assertEquals("a b c", StringUtils.condense("a b c", ' '));
|
|
|
+ assertEquals(" a b c", StringUtils.condense(" a b c", ' '));
|
|
|
+ assertEquals(" a b c ", StringUtils.condense(" a b c ", ' '));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testLtrim() {
|
|
|
+ assertEquals("", StringUtils.ltrim(" "));
|
|
|
+ assertEquals("abc ", StringUtils.ltrim(" abc "));
|
|
|
+ assertEquals("abc ", StringUtils.ltrim("abc "));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRtrim() {
|
|
|
+ assertEquals("", StringUtils.rtrim(" "));
|
|
|
+ assertEquals(" abc", StringUtils.rtrim(" abc "));
|
|
|
+ assertEquals(" abc", StringUtils.rtrim(" abc"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testTrim() {
|
|
|
+ assertEquals("", StringUtils.trim(" "));
|
|
|
+ assertEquals("abc", StringUtils.trim(" abc "));
|
|
|
+ assertEquals("abc", StringUtils.trim("abc "));
|
|
|
+ assertEquals("abc", StringUtils.trim(" abc"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testReplaceFunction() {
|
|
|
+ assertEquals("A=7 B=14 C=21", StringUtils.replace("A=#1 B=#2 C=#3", Pattern.compile("#([0-9])"), hit ->
|
|
|
+ String.valueOf(7*Integer.parseInt(hit.group(1)))
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testReplaceChar() {
|
|
|
+ assertEquals("A=$1 B=$2 C=$3", StringUtils.replace("A=#1 B=#2 C=#3", '#', '$'));
|
|
|
+
|
|
|
+ assertEquals("A=1 B=2 C=3", StringUtils.replace("A=#1 B=#2 C=#3", '#', ""));
|
|
|
+
|
|
|
+ assertEquals("A=d1 B=d2 C=d3", StringUtils.replace("A=#1 B=#2 C=#3", '#', "d"));
|
|
|
+
|
|
|
+ assertEquals("A=num1 B=num2 C=num3", StringUtils.replace("A=#1 B=#2 C=#3", '#', "num"));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|