1   /*
2    * Copyright 2004-2008 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.seasar.cubby.util;
17  
18  import java.util.ArrayList;
19  import java.util.Collection;
20  import java.util.List;
21  
22  import junit.framework.TestCase;
23  
24  import org.seasar.cubby.controller.MockAction;
25  import org.seasar.framework.util.ClassUtil;
26  
27  public class CubbyUtilsTest extends TestCase {
28  
29  	public void testGetObjectSize() {
30  		// array
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  		// collection
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 testGetActionUrl() {
54  		assertEquals("/hoge/m1", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m1", null)));
55  		assertEquals("/hoge/m/m2", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "m2", null)));
56  		assertEquals("/hoge/", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index", null)));
57  		assertEquals("/hoge/index2", CubbyUtils.getActionUrl(Hoge1Action.class, ClassUtil.getMethod(Hoge1Action.class, "index2", null)));
58  		assertEquals("/hoge2/m1", CubbyUtils.getActionUrl(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m1", null)));
59  		assertEquals("/hoge/m2", CubbyUtils.getActionUrl(Hoge2Action.class, ClassUtil.getMethod(Hoge2Action.class, "m2", null)));
60  		assertEquals("/", CubbyUtils.getActionUrl(MockAction.class, ClassUtil.getMethod(MockAction.class, "index", null)));
61  		assertEquals("/dummy1", CubbyUtils.getActionUrl(MockAction.class, ClassUtil.getMethod(MockAction.class, "dummy1", null)));
62  		assertEquals("/dummy2", CubbyUtils.getActionUrl(MockAction.class, ClassUtil.getMethod(MockAction.class, "dummy2", null)));
63  		assertEquals("/todo/lists", CubbyUtils.getActionUrl(MockAction.class, ClassUtil.getMethod(MockAction.class, "todolist", null)));
64  		assertEquals("/tasklists", CubbyUtils.getActionUrl(MockAction.class, ClassUtil.getMethod(MockAction.class, "tasklist", null)));
65  	}
66  
67  	public void testGetActionClassName() {
68  		assertEquals("hoge", CubbyUtils.getActionClassName(Hoge1Action.class));
69  		assertEquals("hoge2", CubbyUtils.getActionClassName(Hoge2Action.class));
70  	}
71  
72  }