1   package org.seasar.cubby.util;
2   
3   import java.util.ArrayList;
4   import java.util.Collection;
5   import java.util.List;
6   
7   import junit.framework.TestCase;
8   
9   import org.seasar.framework.util.ClassUtil;
10  
11  public class CubbyUtilsTest extends TestCase {
12  
13  	public void testGetObjectSize() {
14  		// array
15  		assertEquals(0, CubbyUtils.getObjectSize(null));
16  		assertEquals(1, CubbyUtils.getObjectSize(""));
17  		assertEquals(0, CubbyUtils.getObjectSize(new Object[] {}));
18  		assertEquals(3, CubbyUtils.getObjectSize(new Object[] {1,2,3}));
19  		assertEquals(3, CubbyUtils.getObjectSize(new Object[] {null,2,3}));
20  
21  		// collection
22  		assertEquals(0, CubbyUtils.getObjectSize(toCollection(new Object[] {})));
23  		assertEquals(3, CubbyUtils.getObjectSize(toCollection(new Object[] {1,2,3})));
24  		assertEquals(3, CubbyUtils.getObjectSize(toCollection(new Object[] {null,2,3})));
25  
26  	}
27  
28  	@SuppressWarnings("unchecked")
29  	private Collection toCollection(Object[] objects) {
30  		List<Object> list = new ArrayList<Object>();
31  		for (Object o : objects) {
32  			list.add(o);
33  		}
34  		return list;
35  	}
36  
37  	public void testGetActionUrl() {
38  		assertEquals("/hoge/m1", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m1", null)));
39  		assertEquals("/hoge/m/m2", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m2", null)));
40  		assertEquals("/hoge/", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index", null)));
41  		assertEquals("/hoge/index2", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index2", null)));
42  		assertEquals("/hoge2/m1", CubbyUtils.getActionUrl(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m1", null)));
43  		assertEquals("/hoge/m2", CubbyUtils.getActionUrl(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m2", null)));
44  	}
45  
46  	public void testGetActionClassName() {
47  		assertEquals("hoge", CubbyUtils.getActionClassName(Hoge1Action.class));
48  		assertEquals("hoge2", CubbyUtils.getActionClassName(Hoge2Action.class));
49  	}
50  
51  }