1 package serp.util;
2
3 import junit.framework.*;
4 import junit.textui.*;
5
6
7
8
9
10
11 public class TestStrings extends TestCase {
12 public TestStrings(String test) {
13 super(test);
14 }
15
16
17
18
19 public void testSplit() {
20 String str = "boo:and:foo";
21
22 assertEquals(new String[] { "boo", "and:foo" },
23 Strings.split(str, ":", 2));
24 assertEquals(new String[] { "boo:and:foo" },
25 Strings.split(str, ":", 1));
26 assertEquals(new String[] { "boo", "and", "foo" },
27 Strings.split(str, ":", 0));
28 assertEquals(new String[] { "boo", "and", "foo" },
29 Strings.split(str, ":", -2));
30 assertEquals(new String[] { "b", "", ":and:f", "", "" },
31 Strings.split(str, "o", 5));
32 assertEquals(new String[] { "b", "", ":and:f", "o" },
33 Strings.split(str, "o", 4));
34 assertEquals(new String[] { "b", "", ":and:f", "", "" },
35 Strings.split(str, "o", -2));
36 assertEquals(new String[] { "b", "", ":and:f" },
37 Strings.split(str, "o", 0));
38 assertEquals(new String[] { "", "b", "", ":and:f" },
39 Strings.split("o" + str, "o", 0));
40 }
41
42
43
44
45 public void testClassForName() {
46
47 assertEquals(boolean.class, Strings.toClass("boolean", null));
48 assertEquals(byte.class, Strings.toClass("byte", null));
49 assertEquals(char.class, Strings.toClass("char", null));
50 assertEquals(double.class, Strings.toClass("double", null));
51 assertEquals(float.class, Strings.toClass("float", null));
52 assertEquals(int.class, Strings.toClass("int", null));
53 assertEquals(long.class, Strings.toClass("long", null));
54 assertEquals(short.class, Strings.toClass("short", null));
55 assertEquals(void.class, Strings.toClass("void", null));
56
57
58 assertEquals(String.class, Strings.toClass(String.class.getName(),
59 null));
60
61
62 assertEquals(boolean[].class, Strings.toClass("[Z", null));
63 assertEquals(byte[].class, Strings.toClass("[B", null));
64 assertEquals(char[].class, Strings.toClass("[C", null));
65 assertEquals(double[].class, Strings.toClass("[D", null));
66 assertEquals(float[].class, Strings.toClass("[F", null));
67 assertEquals(int[].class, Strings.toClass("[I", null));
68 assertEquals(long[].class, Strings.toClass("[J", null));
69 assertEquals(short[].class, Strings.toClass("[S", null));
70 assertEquals(String[].class,
71 Strings.toClass(String[].class.getName(), null));
72 assertEquals(boolean[][].class, Strings.toClass("[[Z", null));
73 assertEquals(String[][].class,
74 Strings.toClass(String[][].class.getName(), null));
75
76 assertEquals(boolean[].class, Strings.toClass("boolean[]", null));
77 assertEquals(byte[].class, Strings.toClass("byte[]", null));
78 assertEquals(char[].class, Strings.toClass("char[]", null));
79 assertEquals(double[].class, Strings.toClass("double[]", null));
80 assertEquals(float[].class, Strings.toClass("float[]", null));
81 assertEquals(int[].class, Strings.toClass("int[]", null));
82 assertEquals(long[].class, Strings.toClass("long[]", null));
83 assertEquals(short[].class, Strings.toClass("short[]", null));
84 assertEquals(String[].class, Strings.toClass("java.lang.String[]",
85 null));
86
87 try {
88 Strings.toClass("[V", null);
89 fail("Allowed invalid class name");
90 } catch (RuntimeException re) {
91 }
92
93 try {
94 Strings.toClass("java.lang.Foo", null);
95 fail("Allowed invalid class name");
96 } catch (RuntimeException re) {
97 }
98 }
99
100 private void assertEquals(String[] arr1, String[] arr2) {
101 assertEquals(arr1.length, arr2.length);
102
103 for (int i = 0; i < arr1.length; i++)
104 assertEquals(arr1[i], arr2[i]);
105 }
106
107 public static Test suite() {
108 return new TestSuite(TestStrings.class);
109 }
110
111 public static void main(String[] args) {
112 TestRunner.run(suite());
113 }
114 }