1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.util;
17
18 import java.util.ArrayList;
19 import java.util.Arrays;
20 import java.util.Collection;
21 import java.util.List;
22
23 import junit.framework.TestCase;
24
25 import org.seasar.framework.util.ClassUtil;
26
27 public class CubbyUtilsTest extends TestCase {
28
29 public void testGetObjectSize() {
30
31 assertEquals(0, CubbyUtils.getObjectSize(null));
32 assertEquals(1, CubbyUtils.getObjectSize(""));
33 assertEquals(0, CubbyUtils.getObjectSize(new Object[] {}));
34 assertEquals(3, CubbyUtils.getObjectSize(new Object[] {1,2,3}));
35 assertEquals(3, CubbyUtils.getObjectSize(new Object[] {null,2,3}));
36
37
38 assertEquals(0, CubbyUtils.getObjectSize(toCollection(new Object[] {})));
39 assertEquals(3, CubbyUtils.getObjectSize(toCollection(new Object[] {1,2,3})));
40 assertEquals(3, CubbyUtils.getObjectSize(toCollection(new Object[] {null,2,3})));
41
42 }
43
44 @SuppressWarnings("unchecked")
45 private Collection toCollection(Object[] objects) {
46 List<Object> list = new ArrayList<Object>();
47 for (Object o : objects) {
48 list.add(o);
49 }
50 return list;
51 }
52
53 public void testGetActionPath() {
54 assertEquals("/hoge/m1", CubbyUtils.getActionPath(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m1", null)));
55 assertEquals("/hoge/m/m2", CubbyUtils.getActionPath(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m2", null)));
56 assertEquals("/hoge/", CubbyUtils.getActionPath(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index", null)));
57 assertEquals("/hoge/index2", CubbyUtils.getActionPath(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index2", null)));
58 assertEquals("/hoge2/m1", CubbyUtils.getActionPath(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m1", null)));
59 assertEquals("/hoge/m2", CubbyUtils.getActionPath(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m2", null)));
60 assertEquals("/", CubbyUtils.getActionPath(MockAction.class, ClassUtil.getMethod(MockAction.class, "index", null)));
61 assertEquals("/dummy1", CubbyUtils.getActionPath(MockAction.class, ClassUtil.getMethod(MockAction.class, "dummy1", null)));
62 assertEquals("/dummy2", CubbyUtils.getActionPath(MockAction.class, ClassUtil.getMethod(MockAction.class, "dummy2", null)));
63 assertEquals("/todo/lists", CubbyUtils.getActionPath(MockAction.class, ClassUtil.getMethod(MockAction.class, "todolist", null)));
64 assertEquals("/tasklists", CubbyUtils.getActionPath(MockAction.class, ClassUtil.getMethod(MockAction.class, "tasklist", null)));
65 }
66
67 public void testGetActionClassName() {
68 assertEquals("hoge", CubbyUtils.getActionDirectory(Hoge1Action.class));
69 assertEquals("hoge2", CubbyUtils.getActionDirectory(Hoge2Action.class));
70 }
71
72 public void testReplaceFirst() {
73 assertNull(CubbyUtils.replaceFirst(null, "", ""));
74 assertEquals("abaa", CubbyUtils.replaceFirst("abaa", null, null));
75 assertEquals("abaa", CubbyUtils.replaceFirst("abaa", "a", null));
76 assertEquals("baa", CubbyUtils.replaceFirst("abaa", "a", ""));
77 assertEquals("zbaa", CubbyUtils.replaceFirst("abaa", "a", "z"));
78 assertEquals("xyzaab", CubbyUtils.replaceFirst("abaab", "ab", "xyz"));
79 assertNull(CubbyUtils.replaceFirst(null, "", ""));
80 assertEquals("3abaa", CubbyUtils.replaceFirst("3abaa", null, null));
81 assertEquals("3abaa", CubbyUtils.replaceFirst("3abaa", "a", null));
82 assertEquals("3baa", CubbyUtils.replaceFirst("3abaa", "a", ""));
83 assertEquals("3zbaa", CubbyUtils.replaceFirst("3abaa", "a", "z"));
84 assertEquals("3xyzaab", CubbyUtils.replaceFirst("3abaab", "ab", "xyz"));
85 }
86
87 public void testSplit2() {
88 assertNull(CubbyUtils.split2(null, '_'));
89 assertTrue(Arrays.deepEquals(new String[] { "" }, CubbyUtils.split2("", '_')));
90 assertTrue(Arrays.deepEquals(new String[] { "ab", "" }, CubbyUtils.split2("ab_", '_')));
91 assertTrue(Arrays.deepEquals(new String[] { "ab_cd_de_" }, CubbyUtils.split2("ab_cd_de_", ',')));
92 assertTrue(Arrays.deepEquals(new String[] { "ab", "cd_de_" }, CubbyUtils.split2("ab_cd_de_", '_')));
93 }
94
95 }