3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertNull;
5 import static org.testng.AssertJUnit.assertTrue;
7 import java.util.Arrays;
9 import org.testng.annotations.Test;
11 public class StringUtilsTest
14 @Test(groups = { "Functional" })
15 public void testInsertCharAt()
17 char[] c1 = "ABC".toCharArray();
18 char[] expected = new char[] { 'A', 'B', 'C', 'w', 'w' };
19 assertTrue(Arrays.equals(expected,
20 StringUtils.insertCharAt(c1, 3, 2, 'w')));
21 expected = new char[] { 'A', 'B', 'C', 'w', 'w' };
22 assertTrue(Arrays.equals(expected,
23 StringUtils.insertCharAt(c1, 4, 2, 'w')));
24 assertTrue(Arrays.equals(expected,
25 StringUtils.insertCharAt(c1, 5, 2, 'w')));
26 assertTrue(Arrays.equals(expected,
27 StringUtils.insertCharAt(c1, 6, 2, 'w')));
28 assertTrue(Arrays.equals(expected,
29 StringUtils.insertCharAt(c1, 7, 2, 'w')));
32 @Test(groups = { "Functional" })
33 public void testDeleteChars()
35 char[] c1 = "ABC".toCharArray();
37 // delete second position
38 assertTrue(Arrays.equals(new char[] { 'A', 'C' },
39 StringUtils.deleteChars(c1, 1, 2)));
41 // delete positions 1 and 2
42 assertTrue(Arrays.equals(new char[] { 'C' },
43 StringUtils.deleteChars(c1, 0, 2)));
45 // delete positions 1-3
46 assertTrue(Arrays.equals(new char[] {},
47 StringUtils.deleteChars(c1, 0, 3)));
50 assertTrue(Arrays.equals(new char[] { 'A', 'B' },
51 StringUtils.deleteChars(c1, 2, 3)));
53 // out of range deletion is ignore
54 assertTrue(Arrays.equals(c1, StringUtils.deleteChars(c1, 3, 4)));
57 @Test(groups = { "Functional" })
58 public void testGetLastToken()
60 assertNull(StringUtils.getLastToken(null, null));
61 assertNull(StringUtils.getLastToken(null, "/"));
62 assertEquals("a", StringUtils.getLastToken("a", null));
64 assertEquals("abc", StringUtils.getLastToken("abc", "/"));
65 assertEquals("c", StringUtils.getLastToken("abc", "b"));
66 assertEquals("file1.dat", StringUtils.getLastToken(
67 "file://localhost:8080/data/examples/file1.dat", "/"));
70 @Test(groups = { "Functional" })
71 public void testSeparatorListToArray()
73 String[] result = StringUtils.separatorListToArray(
74 "foo=',',min='foo',max='1,2,3',fa=','", ",");
75 assertEquals("[foo=',', min='foo', max='1,2,3', fa=',']",
76 Arrays.toString(result));
78 * Comma nested in '' is not treated as delimiter; tokens are not trimmed
80 result = StringUtils.separatorListToArray("minsize='2', sep=','", ",");
81 assertEquals("[minsize='2', sep=',']", Arrays.toString(result));
84 * String delimited by | containing a quoted | (should not be treated as
87 assertEquals("[abc='|'d, ef, g]", Arrays.toString(StringUtils
88 .separatorListToArray("abc='|'d|ef|g", "|")));
91 @Test(groups = { "Functional" })
92 public void testArrayToSeparatorList()
94 assertEquals("*", StringUtils.arrayToSeparatorList(null, "*"));
96 StringUtils.arrayToSeparatorList(new String[] {}, "*"));
99 StringUtils.arrayToSeparatorList(new String[] { "a", "bc",
103 StringUtils.arrayToSeparatorList(new String[] { "a", null,
105 assertEquals("a**cde", StringUtils.arrayToSeparatorList(new String[] {
106 "a", "", "cde" }, "*"));
107 // delimiter within token is not (yet) escaped
108 assertEquals("a*b*c*cde", StringUtils.arrayToSeparatorList(new String[]
109 { "a", "b*c", "cde" }, "*"));